jQuery.load() с формой AJAX Kontactr
После просмотра множества вопросов о том, как jQuery.load() обрабатывает теги в загружаемом содержимом, я вижу, что jQuery удаляет встроенные теги. Но я бы хотел использовать Kontactr для страницы контактов на моем сайте, и гораздо более приятное встраивание AJAX - это два тега сценария, как в примерах кода ниже. Как можно обойти ограничения jQuery.load(), чтобы эти теги скриптов выполнялись в функции callback () jQuery.load(file, callback())?
index.html
<html>
<head>
<!--include css, jquery, scripts -->
<script type="text/javascript">
$(document).ready(function() {
$('#main_content').load('contact.html #main_content', function(){
//what can I put here to run the Kontactr inline script code
//when contact.html is loaded?
});
});
</script>
</head>
<body>
<div id="main_content"><!--content will load here--></div>
</body>
</html>
contact.html
<div id="main_content">
<h1>Please Contact Us With The Form Below</h1>
<!-- jQuery.load will strip out these script tags
and the form will not be embedded. -->
<script type="text/javascript"> id = 1; </script>
<script type="text/javascript" src="http://kontactr.com/wp.js"></script>
</div>
Я думал, может быть, я могу поставить <div id="contact_form"/>
в contact.html, а затем, возможно, оцените теги сценария в функции обратного вызова внутри $('#contact_form').html(//eval script tags result here);
, но я не уверен, как это сделать синтаксически.
1 ответ
Так что, если кто-то еще столкнется с этой проблемой, есть довольно простое решение.
Этот скрипт http://kontactr.com/wp.js просто document.write() - это фрейм на страницу. То, что я делал, было следующим:
<div id="main_content">
<h1>Please Contact Us With The Form Below</h1>
<center>
<iframe id="kontactr-iframe" src="http://kontactr.com/w.php?id=1&referrer=http://www.theurlyourrequestingfrom.com&color=000000-FFFFFF-000000-FFFFFF" width="475px" height="475px" frameborder="0"></iframe>
</center>
</div>
Отлично работает.
Примечания: color
аргумент не является обязательным, и id
Аргумент зависит от вашей учетной записи Kontactr. referrer
аргумент заполнен window.top.location.href
в сценарии http://kontactr.com/wp.js. Я просто поместил URL-адрес страницы $.load() там.