document.body.innerHTML.replace()替换地址栏中的url

时间:2010-12-30 10:13:49

标签: firefox-addon

我正在尝试进行扩展,其中我希望突出显示网页中的某些字词。 document.body.innerHTML.replace()也替换了地址栏中的url。所以,当这段代码被激活时,页面无法正确加载.. 有没有解决这个问题的方法?

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>');
}

侦听器在browser.xul overlay中注册如下:

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);
  }, 

1 个答案:

答案 0 :(得分:0)

onPageLoad: function(aEvent) {       
  if(aEvent.originalTarget.nodeName=="#document"){
    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>'); 
  } 
}

函数中的if条件碰巧做了伎俩.. :)