1

我正在使用 jquery 的 .html() 函数将 html 文件注入到我的应用程序主页的部分 div 中。在注入的部分html页面中,有一个javascript引用,例如script(src='../../javascripts/partialFunctions.js')。jquery函数和主页面是这样的:

$('.partialDiv').html(htmlResult);

<div>main page</div>
<div class='partialDiv'></div>
<input type='button'>button</input>

当用户单击主应用程序页面上的特定按钮时,将调用 jquery 函数并将 html 文件注入主页面。

问题是每次注入新的 htm 文件时,浏览器都会加载脚本文件。所以在用户多次点击按钮后会有很多重复的javascript函数。

如何动态执行此操作并避免 javascript 函数的重复?

提前致谢!

4

2 回答 2

1

htmlResult您可以从页面中删除脚本标签和引用。然后使用$.getScript('myscript.js')导入必要的 JavaScript 文件。此处获取有关 getScript()的更多信息

所以要加载脚本并确保它只加载一次:

var window.foo = false; //Outside the document.ready

$('.partialDiv').html(htmlResult);
if(window.foo == false){
    $.getScript("js/myScript.js", function(data, textStatus, jqxhr){
        console.log('Script loaded');
        window.foo = true;
    });
}
于 2012-11-21T21:53:29.687 回答
0

我刚刚做了一个快速测试,当你调用.html(). 所以你应该能够简单地做:

var html = "<html><script></script></html>",
    cleanedHtml = $(html).html();
myEl.html(cleanedHtml);
于 2012-11-21T21:43:55.883 回答