Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/443.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在通过AJAX加载的DOM中运行动态注入的javascript(尝试使用history.js对网站进行ajaxify)_Javascript_Dom_Pushstate_History.js_Html5 History - Fatal编程技术网

在通过AJAX加载的DOM中运行动态注入的javascript(尝试使用history.js对网站进行ajaxify)

在通过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

我有一个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添加到页面(如果该页面尚不存在)

(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时会计算包含的脚本标记。“我要尝试一下,但这听起来就像我需要的:)听起来很好,很简单。祝你好运