我在寫一個Firefox擴展。擴展名用其他詞替換頁面上的某些詞。以下是我正在使用的基本代碼:更新頁面HTML導致無限循環
function startup() {
gBrowser.addEventListener("load", pageLoad, true);
}
function pageLoad(event) {
if (event.originalTarget instanceof HTMLDocument) {
var ht = content.document.body.innerHTML;
ht = ht.replace(/\bthe\b/g,"el");
content.document.body.innerHTML = ht;
}
}
問題是此代碼導致無限循環。當我設置body的innerHTML屬性時,它會發送另一個負載事件,這會導致無限循環。
如何在頁面加載時修改頁面而不會導致頁面加載事件再次觸發?