1

在看到许多关于 jQuery.load() 如何处理要加载的内容中的标签的问题后,我看到 jQuery 去除了内联标签。但是,我想在我的站点中使用Kontactr作为联系页面,并且它们嵌入的更好的 AJAX 是两个脚本标签,如下面的代码示例所示。如何解决 jQuery.load() 约束以使这些脚本标签在 jQuery.load(file, callback()) callback() 函数中运行?

索引.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>

联系人.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中放入a,然后在其中的回调函数中评估脚本标签 $('#contact_form').html(//eval script tags result here);,但我不确定如何在语法上做到这一点。

4

1 回答 1

1

所以,万一其他人遇到这个问题,有一个非常简单的解决方案。

http://kontactr.com/wp.js脚本只是 document.write()s 页面的 iframe。我最终做的是:

<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 帐户。该参数在http://kontactr.com/wp.js脚本referrer中填充。我只是把 $.load() 页面的 URL 放在那里。window.top.location.href

于 2010-07-10T05:27:15.717 回答