2010-06-24 69 views
1

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

的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,然后也许EVAL在脚本标记 $('#contact_form').html(//eval script tags result here);内部的回调函数,但我不知道如何在语法上做到这一点。

回答

1

因此,如果有人遇到这个问题,有一个非常简单的解决方案。

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