私は現在 Chrome 拡張機能に取り組んでおり、ソース コードはGithub で入手できます。目標は、カスタム Javascript を Web ページに挿入することです。
現在、各カスタム Javascript InjectをlocalStorageに保存し、コンテンツ sciptsから呼び出します。run_atをdocument_startに設定しました。
これを使用して、バックグラウンド スクリプトから保存された注入を取得します。
chrome.extension.sendMessage({method:"get_injects"},function(injects){
for(index in injects){
if(/^items\./.test(index)){
itemJSON = injects[index];
//if(window.location.host.toString().indexOf(itemJSON.url)){
if(window.location.host.toString().match(itemJSON.url + '$')){
var js = itemJSON.js.toString();
eval(js);
}
}
}
});
問題
ドキュメントが読み込まれる直前にInjectスクリプト を実行したいと考えています。しかし、提示された方法を使用すると、制御は渡され、応答を待つことはありません。そのため、ページ読み込みの途中で実行されます。ページの読み込み前に注入できるようにするには、どうすればこれを解決できますか?chrome.extension.sendMessage
injects
eval(js);