2013-08-23 63 views
4

我正在處理一個包含網頁元素(如按鈕)的變量。 但是,有時我會收到錯誤「無法訪問死對象」,因爲包含該元素的頁面在我保存之後發生了更改。知道一個DOM對象是否死了

我想知道的方式來檢查元素是否是死了還是不行,我想:

if(element) 
    alert("Do something"); 

但預計它不工作。

+0

'if(!! element)'?這將迫使元素變得真實 – OnesimusUnbound

+4

問一個驗屍官嗎? :/ – jlafay

+0

看到這個答案http://stackoverflow.com/a/4186939/1862502 –

回答

0

How to check if element exists in the visible DOM?

var elementInDocument = function(element) { 
     while (element = element.parentNode) { 
      if (element == document) { 
       return true; 
      } 
     } 
     return false; 
    } 

複製您可以使用它像:

if(elementInDocument(element)) 
    alert("Do something"); 
+0

最後很明顯,我只需檢查元素是否存在於DOM中。 – user2302725

0
//eval it in your mozilla-browser space 

var dc = content.document; 
content.document.location.reload(); 
setTimeout(function(){ 
    try{ 
    dc.parentNode; 
    }catch(e){ 
    if (e.message.indexOf(' dead ')!=-1){ 
     alert('REALY DEAD!'); 
    } 
} }, 1000); 

它是死在我的萬盎司推廣項目的測試(在try..catch塊)。

相關問題