在通过AJAX加载的DOM中运行动态注入的javascript(尝试使用history.js对网站进行ajaxify)
我有一个web应用程序,它基本上有页眉、页脚和主体视图。我正在使用history.js库和HTML5 pushstate对网站进行Ajaxification,但我遇到的问题之一是在将javascript插入DOM时让嵌入式javascript运行 几乎我所有的javascript都包装在jQuery(function(){…})(ready loader上的文档)中 有人知道处理这件事的好策略吗?谢谢 如果我理解您的意思,您的“页面”只是动态加载的HTML的容器。在该HTML中,有当前未执行的JavaScript脚本块。对吗?它们是在页面脚本中还是在指向新脚本文件的链接中 无论如何,我认为这回答了你的问题: 我自己的想法: 除非您的容器非常通用,因此无法知道您可能需要什么JavaScript,否则最简单的方法可能是手动将所有JavaScript附加到容器页面,以便它与容器一起加载,可能会缩小并连接到单个文件中 如果需要动态加载脚本,但您知道它们是什么,那么可以使用.getScript()或.ajax()使用jQuery来实现。我觉得这一页把事情说得很清楚 类似地,如果您在抓取html块之前不知道需要什么脚本,您可能会解析html中的脚本链接,并通过添加到页面中的新脚本元素手动附加它们。例如,下面的脚本将jQuery添加到页面(如果该页面尚不存在)在通过AJAX加载的DOM中运行动态注入的javascript(尝试使用history.js对网站进行ajaxify),javascript,dom,pushstate,history.js,html5-history,Javascript,Dom,Pushstate,History.js,Html5 History,我有一个web应用程序,它基本上有页眉、页脚和主体视图。我正在使用history.js库和HTML5 pushstate对网站进行Ajaxification,但我遇到的问题之一是在将javascript插入DOM时让嵌入式javascript运行 几乎我所有的javascript都包装在jQuery(function(){…})(ready loader上的文档)中 有人知道处理这件事的好策略吗?谢谢 如果我理解您的意思,您的“页面”只是动态加载的HTML的容器。在该HTML中,有当前未执行的J
(function () {
if (typeof(jQuery) == "undefined") {
var headID = document.getElementsByTagName("head")[0];
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.id = 'myjQuery';
newScript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js';
headID.appendChild(newScript);
}
window.addEventListener('load', function (e) {
//make jQuery calls here.
}, false);
})();
使用,我不打算解释该函数的所有行为,但用几句话:
处理dom上的冒泡元素例如,您将“onclick”绑定到一个div,您可以将其设置为部分或全部子对象具有x行为我想我刚刚找到了一个很好的答案:dataType config属性:“html”:以纯文本形式返回html;插入dom时会计算包含的脚本标记。“我要尝试一下,但这听起来就像我需要的:)听起来很好,很简单。祝你好运