ajax加载html页面,该html页面的require.js会失效 50

 我来答
百度网友3cb80af
2017-06-23 · TA获得超过9535个赞
知道大有可为答主
回答量:1.2万
采纳率:83%
帮助的人:3883万
展开全部
// 第一步:匹配加载的页面中是否含有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失效

可以找到很多例子。。

追问

我这一段没解析出来。

你那段代码的jsContained。

require.js可能和普通的有些区别。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式