javascript事件:当文档完全加载但脚本尚未运行时获取

时间:2013-08-31 11:56:46

标签: javascript mutation-observers domcontentloaded

加载文档并运行其脚本后,

DOMContentLoaded触发,我想在脚本执行之前运行我的代码,但document.body.outerHTMLdocument.childNodes[document.childNodes.length-1].outerHTML)已满了

我尝试了这个,但是看起来它在运行后也运行了很多次所以现在我在执行mycode之前做了一个200ms的计时器工作,但是我想在没有计时器的情况下这样做

var observer = new MutationObserver(function(mutations) 
{
    if(document.body && document.childNodes[document.childNodes.length-1].outerHTML.lastIndexOf("</html>")!=-1)
    {
        observer.disconnect();
        mycode();
    }
});
observer.observe(document, {subtree: true, childList: true}); 

需要在Chrome中工作(所以之前的事件不会在这里发挥作用)

2 个答案:

答案 0 :(得分:1)

如果你想在你所谓的所有“文本”之后运行某些内容但是在其他js之前运行,你需要在页面的最底部运行你所有的js(也就是说,btw,建议的最佳实践)并运行你需要的任何东西,然后在最顶端运行......

请注意,js是高度并发的 - 意味着很多东西同时发生,所以我建议你将第一个代码包装在一个匿名函数中运行,而另一个代码运行在另一个函数中,所以它首先被执行。

您的document.ready也可以在f。

答案 1 :(得分:0)

你不能这样做。脚本会立即执行,因此它们会在文档完全加载之前运行。