当前位置:  开发笔记 > 编程语言 > 正文

jQuery .load()调用不会在加载的HTML文件中执行JavaScript

如何解决《jQuery.load()调用不会在加载的HTML文件中执行JavaScript》经验,为你挑选了5个好方法。

这似乎只是与Safari相关的问题.我在Mac上尝试了4次,在Windows上尝试了3次,但我仍然没有运气.

我正在尝试加载外部HTML文件并使嵌入的JavaScript执行.

我试图使用的代码是这样的:

$("#myBtn").click(function() {
    $("#myDiv").load("trackingCode.html");
});

trackingCode.html 看起来像这样(现在很简单,但如果我开始工作,会扩展一次):



    Tracking HTML File
    





我在IE(6和7)和Firefox(2和3)中看到了两条警报消息.但是,我无法在Safari中看到这些消息(我需要关注的最后一个浏览器 - 项目要求 - 请不要进行火焰战争).

有关为什么Safari忽略trackingCode.html文件中的JavaScript的任何想法?

最后,我希望能够将JavaScript对象传递给此trackingCode.html文件,以便在jQuery ready调用中使用,但我希望确保在我走这条路之前在所有浏览器中都可以实现.



1> Tony Miller..:

您正在将整个HTML页面加载到div中,包括html,head和body标记.如果您执行加载并在您加载的HTML中只有开始脚本,关闭脚本和JavaScript代码会发生什么?

这是驱动程序页面:


 
    
        
        jQuery Load of Script
        
        
        
    
    
        
        

以下是trackingCode.html的内容:


这适用于Safari 4.

更新:添加了DOCTYPE和html命名空间以匹配我的测试环境中的代码.使用Firefox 3.6.13测试并且示例代码有效.


您的代码实际上不在FF中工作(IE8 - 工作正常).有没有办法在**浏览器中完成这项工作?谢谢

2> xtds..:
$("#images").load(location.href+" #images",function(){
    $.getScript("js/productHelper.js"); 
});


真的是$ .getScript()在这个问题上很好的解决方案;)+ 1

3> 小智..:

之前的另一个版本的John Pick的解决方案,这对我来说很好:

jQuery.ajax({
   ....
   success: function(data, textStatus, jqXHR) {
       jQuery(selecteur).html(jqXHR.responseText);
       var reponse = jQuery(jqXHR.responseText);
       var reponseScript = reponse.filter("script");
       jQuery.each(reponseScript, function(idx, val) { eval(val.text); } );
   }
   ...
});


这是最好的解决方案!我爱你@Yannick,你结识了我的一天

4> 小智..:

我意识到这是一个较旧的帖子,但对于任何人来到这个页面寻找类似的解决方案......

http://api.jquery.com/jQuery.getScript/

jQuery.getScript( url, [ success(data, textStatus) ] )

url - 包含发送请求的URL的字符串.

success(data, textStatus) - 请求成功时执行的回调函数.

$.getScript('ajax/test.js', function() {
  alert('Load was performed.');
});



5> 小智..:

如果您将HTML字段加载到动态创建的元素中,这似乎不起作用.

$('body').append('
'); $('#loader').load('htmlwithscript.htm');

我看一下firebug DOM,根本没有脚本节点,只有HTML和我的CSS节点.

有谁遇到过这个?

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有