0

DOMContentLoaded在加载文档并运行其脚本后触发,我想在执行脚本之前运行我的代码,但在document.body.outerHTML( document.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 中工作(所以 beforescriptexecuted 事件在这里不起作用)

4

2 回答 2

1

如果您想在您调用的所有“文本”被加载但在其他 js 之前运行某些东西,您需要在页面的最底部运行所有 js(也就是说,顺便说一句,建议的最佳实践)并运行任何东西你不需要先跑到最顶端...

请注意,js 是高度并发的——这意味着很多事情是同时发生的,所以我建议您将您的第一个代码包装在一个匿名函数中运行,并将其他所有代码都放在另一个中,这样它就会首先执行。

您的 document.ready 也可以在 anon f 中。

于 2013-08-31T12:27:52.650 回答
0

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

于 2013-08-31T12:07:38.030 回答