これは、アマチュアではない人にとってはすぐにわかると思いますが、私は何日もこれに悩まされてきました.
ドキュメントの開始時にスクリプトを実行する Chrome 拡張機能を作成しています。特定の DIV の HTML を読み込み時に書き換えたいが、それらがユーザーに表示される前に (そのため、カスタム HTML に不用意に置き換えられる前に、ユーザーにはサイトの HTML が表示されません)。私が使用しようとしている方法は次のようになります。
addEventListener('DOMNodeInserted', function(event){
if(event.relatedNode.innerHTML.indexOf("contentArea")>-1){
writeContentArea();
}
}, false);
function writeContentArea(){
var divtowrite = document.getElementById('contentArea');
include(divtowrite,"contentArea.html"); //my AJAX include function
}
ここでの問題は、ページが読み込まれて JS が実行されると、div が置き換えられる前に読み込まれることです。奇妙なことに、サイドバーなどの別の div でこれを試してみると、期待どおりに動作します。つまり、div はユーザーに表示される前に置き換えられます。一部の div では機能し、他の div では機能しない理由がわかりません。
これが関連しているかどうかはわかりませんが、Chrome 側には次のようなものがあります。
chrome.tabs.getSelected(null, function(tab) {
if(tab.url.indexOf("search.php") > -1){
chrome.tabs.executeScript(null,
{file: "fhrun.js", allFrames: false, runAt: "document_start"}
);
}
});
これが機能しない理由、または使用すべきより良い方法についてのアイデアはありますか? ありがとう!!