1
Webページ内の特定の単語を強調表示するための拡張機能を作成しようとしています。 document.body.innerHTML.replace()は、アドレスバーのURLも置き換えます。だからこのコードが出てきた瞬間、ページは正しく読み込まれません。 この問題を回避する方法はありますか? browser.xulオーバーレイで次のようにリスナーが登録されているアドレスバーのURLをdocument.body.innerHTML.replace()で置き換えます。
onPageLoad: function(aEvent) {
var doc = aEvent.originalTarget;
var str="the";
var regex;
var regex = new RegExp(str, "g");
doc.body.innerHTML = doc.body.innerHTML.replace(regex,'<b>'+str+'</b>');
}
:
window.addEventListener("load", function() {
myExtension.init();
}, false);
var myExtension = {
init: function() {
var appcontent = document.getElementById("appcontent"); // browser
if(appcontent)
appcontent.addEventListener("DOMContentLoaded", myExtension.onPageLoad, false);
},
イベントハンドラは? –
これは関連性があるかもしれません: "現在のFirefoxのトランクナイトリーはドキュメントだけでなく、xul:images(タブブラウザーのfavicons)のonPageLoad関数を起動します。ドキュメントのみを扱う場合は、' aEvent.originalTarget.nodeName = = "#document" '" https://developer.mozilla.org/en/Code_snippets/On_page_load – MatrixFrog
window.addEventListener( "load"、function(){myExtension.init();}、false); var myExtension = { init:function(){ var appcontent = document.getElementById( "appcontent"); //ブラウザ if(appcontent) appcontent.addEventListener( "DOMContentLoaded"、myExtension.onPageLoad、false); }、 – divya