私のGreasemonkeyスクリプトの場合、ページが読み込まれる前に実行する必要があるコードの一部があります(@run-at document-start
)およびドキュメントのロード後に実行する必要があるコードの別の部分(@run-at document-end
)。
これは可能ですか?
これにはjQueryを使用したくありません。
onload
イベントを試しましたが、機能しませんでした。資料がない場合は添付できないと思いますか?
window.document.onload = function(e){
alert("document.onload" );
}
必要なイベントはDOMContentLoaded
です。また、それはload
イベントの使用方法ではありません。
さまざまな起動時間を示す完全なスクリプトを次に示します。
// ==UserScript==
// @name _Show page start event timing
// @include http://YOUR_SERVER.COM/YOUR_PATH/*
// @run-at document-start
// ==/UserScript==
console.log ("==> Script start.", new Date() );
// 1ST PART OF SCRIPT RUN GOES HERE.
console.log ("==> 1st part of script run.", new Date() );
document.addEventListener ("DOMContentLoaded", DOM_ContentReady);
window.addEventListener ("load", pageFullyLoaded);
function DOM_ContentReady () {
// 2ND PART OF SCRIPT RUN GOES HERE.
// This is the equivalent of @run-at document-end
console.log ("==> 2nd part of script run.", new Date() );
}
function pageFullyLoaded () {
console.log ("==> Page is fully loaded, including images.", new Date() );
}
console.log ("==> Script end.", new Date() );
典型的な結果:
"==> Script start." 2014-10-09T01:53:49.323Z
"==> 1st part of script run." 2014-10-09T01:53:49.323Z
"==> Script end." 2014-10-09T01:53:49.323Z
"==> 2nd part of script run." 2014-10-09T01:53:49.385Z
"==> Page is fully loaded, including images." 2014-10-09T01:53:49.487Z