0

Modernizr のメソッドを介してjQueryをロードしているサイトを強化する Google Chrome ユーザースクリプトに取り組んでいます。.load()

サイトの jQuery インスタンスを使用しますが、ユーザー スクリプトは jQuery が読み込まれる前に実行を開始します。

Greasemonkey スクリプトまたはユーザースクリプトからModernizr のload()/メカニズムをインターセプトする決定論的な方法はありますか?complete

window[jQuery]または、 /などのポーリングが'$' in window唯一の解決策ですか?

(私は jQuery の独自のインスタンスをロードすることを避けようとしていますが、ポーリングでは、変更オブザーバーを使用して傍受したいドキュメントへの最初の変更を見逃すことがあります。)

4

2 に答える 2

0

何をしようとしているのかわかりませんが、以下のスクリプトが役立つ場合があります。HTMLページ内のインラインスクリプトを延期し、戻り時にすべてのスクリプトがmodernizrによってロードされた後に実行されます。

modernizrロード関数の前に以下の行を定義します。

docready=[],$=function(){return{ready:function(fn){docready.push(fn)}}},

modernizrのロード完了に関する以下のスクリプトを記述します

$ = jQuery;
jQuery(document).ready(function() {
    for(n in docready) docready[n]();
});
于 2012-10-19T14:37:26.727 に答える
0

すべてがロードされたときに起動するwindow.onloadを待つ必要があるようです。

Document-end と document-idle は両方とも、DOM 全体が解析された後に実行されることが保証されています。これは、スクリプト開発者が関心を持っている通常のことです。なんらかの理由で、window.onload の後にスクリプトを実行する必要がある場合は、document.readystate プロパティを確認できます。「完了」の場合は、オンロードが発生したと見なすことができます。そうでない場合は、onload をリッスンできます。

于 2012-11-16T18:08:14.830 に答える