ページに JS を挿入する Chrome 拡張機能を作成しています。私のJSはに保存されていscript.js
ます。私はcontentscript.js
実際に注入を行うために a を使用します(この SO answerで推奨されているように)。これはすべてうまくいきます。
私script.js
はjQueryを使用しているためjquery.js
、プラグインも注入する必要があります。だから私のようにcontentscript.js
見える:
var a = document.createElement('script');
a.src = chrome.extension.getURL("jquery.min.js");
a.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(a);
...4 more similiar plugin script injections...
var s = document.createElement('script');
s.src = chrome.extension.getURL("script.js");
s.onload = function() {
this.parentNode.removeChild(this);
};
(document.head||document.documentElement).appendChild(s);
順次順序script.js
は、それらが評価されなければならない順序です。
私の問題は、それがどのようにロードされるかによって、私のjquery.min.js
前に評価される保証がないように見えscript.js
、「$ undefined」や「Object does not have ... method」(プラグインの場合)などのエラーにつながることです。
参考までに、すべてがキャッシュされ、正しい順序で読み込まれると、拡張機能が完全に機能するため、大きなブロッキングの問題ではないことはわかっています。それが、問題は負荷であると私に信じさせるものです。
スクリプトの評価方法に必要な順序を適用するにはどうすればよいですか?