2009-04-09 104 views
0

我想從Firefox擴展執行以下代碼,但它不工作。 else部分中的實際代碼是不同的,但即使這個簡單的for循環也沒有得到執行。不帶for循環的警報框正在工作。有人可以知道爲什麼這不起作用。 感謝JavaScript的Firefox問題

window.addEventListener("pageshow",function(e) 
    { 
     if((document.title.trim()=="Mozilla Firefox") || 
      (document.title.trim()=="New Tab")) 
     { 
     } 
     else 
     { 
      for(i=0;i<3;i++) 
      { 
       alert("hi"); 
      } 
     } 
    },true);  

回答

2

如果它是一個Firefox擴展中,嘗試使用content.document而不僅僅是文件。

編輯

var metaTags = content.document.getElementsByTagName("meta"); 

for(var i = 0; i < metaTags.length; i++) { 
    // do something with metaTags[i] 
} 

另外,如果有幫助,請隨時通過任何extensions I've written的來源看。

+0

克里斯 - 嗨,其實 document.title時工作,我用content.document訪問的元素。但我試圖循環通過meta標籤,但由於某種原因,循環不工作。感謝您的回覆 – felix 2009-04-09 23:07:52

0

document.title.trim()

你確定這就是你想要什麼? String-> trim()是迄今爲止僅在Firefox 3.1中可用的非標準JavaScript方法。

+0

是啊,document.title.trim()工作正常,但循環不工作:(。即使上面的代碼是不工作,它是一個簡單的for循環。 – felix 2009-04-09 23:26:25

0

我改變了對循環for ... in循環和它的工作:)

+0

for..in是用於簡單線性數組的循環的錯誤類型。如果沒有整個代碼,我不知道這裏發生了什麼,但是一個「for(var i = 0 ; i bobince 2009-04-10 00:29:22