2011-08-27 25 views
0

這是一個Firefox插件,它有點令人迷惑,因爲在某一點之後沒有代碼正在執行。Javascript:爲什麼JS停下來?

if (self.xmlDoc == null) return false; 


    var domain_and_full_destination=processing_domain.split(" "); 

    if(domain_and_full_destination[0]=="xxx.org") 
    { 
     //window.stop(); // Totally stop the page from loading. 

     self.root_node = ''; 
     self.root_node = self.xmlDoc.getElementsByTagName('joe_biden_is_a_moron'); 
     var destinations_array= new Array(); 

     for (var cci = 0; cci <= self.root_node.length; cci++) 
     { 
      self.second_node = ''; 
      self.second_node = self.root_node[cci]; 
      destinations_array[cci]=self.second_node.getElementsByTagName('riaum')[0].firstChild.nodeValue; 
     } 


alert(domain_and_full_destination[0]+"\n"); 

if的推移,但我把它剪短,因爲我想知道爲什麼警報從未得到叫什麼名字?

將我的戒備置於for循環中被調用,但for循環之後的任何內容都不會執行。

Firefox錯誤控制檯中也沒有錯誤。

+0

你能澄清一下嗎? h提醒你指的是?我看到其中兩個以上。 –

+0

你爲什麼不在Firebug中設置一個斷點並自己找出來?這不是一個真正的問題。 – Tomalak

+0

對不起,拿出了一個警報。我不知道如何使用Firebug ... – Ryan

回答

1

你確定它沒有投擲?你在那裏做錯了什麼。

for (var cci = 0; cci <= self.root_node.length; cci++) 

應該

for (var cci = 0; cci < self.root_node.length; cci++) 

您所使用的<=其實也意味着,在循環的最後一次迭代,self.second_node實際上是設置爲undefined,這將使self.second_node.getElementsByTagName('riaum')拋出異常。

+0

好吧,做了你所建議的改變,現在它正在拋出:'錯誤:self.second_node是未定義的' – Ryan

+0

好吧,使用警報我看到只有2個結果,但它計數0,1,2這是造成問題。仍然不知道它爲什麼沒有在開始的錯誤CONSOL中顯示,但你的答案是最接近的,所以我接受它。 Thakns每個人! – Ryan

1

缺少if語句的右括號...?

伊沃Stoykov

+0

不,我檢查了第一次,我剛剛發佈了第幾行,直到它停止工作......如果沒有到達那裏,就不會發布其他內容... – Ryan

+0

您是否嘗試過調試? – i100

+0

通過警報進行調試... – Ryan

1

你提到for循環被調用,但只是之前循環結束,看它是否遍歷/退出循環可以提醒您。

如果您是初學者並且不知道如何使用調試工具,放置警報可以幫助您進行調試。然而,從長遠來看,您可能希望使用這些工具來幫助您更快地完成工作。

+0

是的,只要我把它放在for的末尾,但不在外面 – Ryan

+0

對於從'0'到'self.root_node.length'的每次迭代,它都會彈出警告?正如你所說,它會拋出一個例外..意味着它不應該彈出警報。 –

0

嘗試這一行devide成幾個變量

destinations_array[cci]=self.second_node.getElementsByTagName('riaum')[0].firstChild.nodeValue; 

var riaum = self.second_node.getElementsByTagName('riaum')[0] || null; 
var child = riaum.firstChild || ''; 
var nodeVal = child.nodeValue || '?'; 
destinations_array[cci]=nodeVal; 

你必須添加檢查什麼在瓦爾...

HTH

伊沃Stoykov

相關問題