ajax加载html页面,该html页面的require.js会失效 50
展开全部
// 第一步:匹配加载的页面中是否含有js
var regDetectJs = /<script(.|\n)*?>(.|\n|\r\n)*?<\/script>/ig;
var jsContained = ajaxLoadedData.match(regDetectJs);
// 第二步:如果包含js,则一段一段的取出js再加载执行
if(jsContained) {
// 分段取出js正则
var regGetJS = /<script(.|\n)*?>((.|\n|\r\n)*)?<\/script>/im;
// 按顺序分段执行js
var jsNums = jsContained.length;
for (var i=0; i<jsNums; i++) {
var jsSection = jsContained[i].match(regGetJS);
if(jsSection[2]) {
if(window.execScript) {
// 给IE的特殊待遇
window.execScript(jsSection[2]);
} else {
// 给其他大部分浏览器用的
window.eval(jsSection[2]);
}
}
}
}
AJAX加载HTML页面,经常会出现CSS以及JS失效,那是因为很多JS里的事件没有办法绑定到DOM,AJAX还没有建立DOM时就已经把JS读取完了。
之前做一个项目遇到过这个问题,在网上找到了解决办法,只是笔记本被偷了,资料全没了,有点久,刚才在网上找到上面那段代码,,,做法跟我之前做的差不多,你参考着修改。。。
你也可以在百度搜索:ajax加载html页面 JS失效
可以找到很多例子。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询