使用.load(url)不允许我使用额外的JavaScript

时间:2011-12-11 23:13:54

标签: javascript jquery load

我在index.html文件中有这段代码:

$(function(){
    $('a#link').live('click', function(e){ 
        $("div#element").load("file.html");
    });
});

在file.html中,我在顶部有这个代码

<script src="file.js" type="javascript"></script>

当我点击链接时,文件加载正常,但是(根据firebug)JavaScript文件没有加载。有谁知道为什么?我尝试将脚本标记放在index.html文件中,但它不能像那样工作。

4 个答案:

答案 0 :(得分:3)

尝试在div中加载页面后加载页面脚本,如下所示:

$(function(){
    $('a#link').live('click', function(e){ 
        $("div#element").load("file.html", function(){
            $.getScript("file.js", function(){
               // second page's scripts are loaded...
            });
        });
    });
});

一种更简单的解决方法, Pointy陈述,要么修复type属性,要么省略它。

答案 1 :(得分:2)

如果您需要加载脚本,则可以使用getScript方法

答案 2 :(得分:0)

使用javascript加载html时,通常需要删除html head和body标签以使javascript触发。我想这里也提到了这一点 jQuery .load() call doesn't execute javascript in loaded html file

答案 3 :(得分:0)

问题在于,当您使用“.load()”这样的脚本时,如果没有“type”属性,jQuery将只运行它们,或者“type”属性具有精确值“text / javascript”。还有别的东西,它完全被忽略了。

你的脚本对于该属性只有“javascript”,所以它被抛弃了。