簡體   English   中英

如何找出DOM中的數據來自/轉儲內存中的所有數據?

[英]How to find out where data in DOM came from / dumping out all data in memory?

當您將鼠標懸停在圖像上時,會有一個頁面顯示特定值。 我需要以編程方式從頁面獲取該值。 我可以訪問頁面中的JS控制台,但無法確定它的來源。

我嘗試在DOM更改上添加斷點,但仍不清楚數據來自何處。

我還嘗試了轉儲整個window對象,但是它似乎沒有轉儲足夠的數據或包含顯示的數據(數字)(從Chrome sendrequest錯誤中獲取的檢查器函數錯誤:TypeError:將圓形結構轉換為JSON

function censor(censor) {
  var i = 0;

  return function(key, value) {
    if(i !== 0 && typeof(censor) === 'object' && typeof(value) == 'object' && censor == value) 
      return '[Circular]'; 

    if(i >= 1129)
      return '[Unknown]';

    ++i; // so we know we aren't using the original object anymore

    return value;  
  }
}

for(var key in window){
  console.log(key);
  if(key === 'frames' || key === 'self' || key === 'window' || key === 'parent' || key === 'top' || key === 'document') continue;
  console.log(JSON.stringify(window[key], censor(window[key])))
}

有什么想法可以獲取頁面中數據的完整轉儲(以便我可以搜索確切的數據來源)或清楚地了解DOM中數據的來源嗎? 將DOM元素添加到圖像懸停時,然后將鼠標移開時將其刪除。

使用Chrome開發工具, right-click元素,然后選擇inspect 在右側面板中,選擇“ 事件監聽器”選項卡。 在列表中,展開鼠標懸停 (或其他適當的事件)。

將為您提供直接影響該元素的代碼的鏈接。

編輯#1

請參考有關從其他(可能是不受控制的)代碼中檢索數據的注釋:

如果該數據是在代碼未創建的閉包中創建/派生/控制的,則您不太可能檢索到該數據。 這就是JavaScript閉包的本質。 數據可能在您無法觸及的氣泡內。

編輯#2

您可以使用的技巧:在元素上強制mouseover事件。 這會將您需要的值放入DOM中。 從DOM中提取值。 然后關閉mouseover事件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM