0

DOMContentLoadeddocument.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 は非常に並行性が高いことに注意してください。つまり、多くのことが同時に発生しているため、最初のコードをラップして 1 つの匿名関数で実行し、他のすべてを別の匿名関数で実行して、最初に実行されるようにすることをお勧めします。

document.ready は anon f にすることもできます。

于 2013-08-31T12:27:52.650 に答える
0

そんなことはできません。スクリプトはすぐに実行されるため、ドキュメントが完全に読み込まれる前に実行されます。

于 2013-08-31T12:07:38.030 に答える