2017-06-19 37 views
2

我想簡化我的生活一點,並通過查詢刪除鉻的歷史。我有幾百個複選框要刪除,手動操作真的很痛苦。的getElementById和querySelectorAll不鍍鉻工作://歷史

於是我打開chrome://history/?q=somequery,並看到了很多的複選框。我寫:

document.querySelectorAll('[aria-checked]') 

並且它什麼也沒有返回。好吧,我寫:

document.querySelectorAll('button') 

它什麼也沒有返回!好吧,那麼我只是打Edit HTML按鈕,手動添加一些元素,然後試圖通過ID來獲得它: enter image description here

document.getElementById('foooobar') 

而且你知道嗎?沒有。

我不明白它是否使用某種框架或阻止我訪問這些元素的東西,但我檢查了沒有i-/frame,所以我只是困惑它爲什麼不起作用如預期。

我問前一派,發現幾個答案,人們只是想創建它們之前得到的元素,但現在頁面完全加載和元素仍然不可用......

+1

它是一種高分子的應用程序。聚合物使用網絡組件,反過來創建陰影。比基本dom更復雜 – charlietfl

回答

2

你需要將手伸入陰影通過使用:: shadow僞選擇器。試試這個片段來選擇所有的按鈕。

[].slice.call(document 
      .querySelector('history-app::shadow iron-pages history-list') 
      .querySelector('history-list::shadow iron-list') 
      .querySelectorAll('iron-list history-item')) 
     .forEach(function(el) { 
      console.log(el.querySelector('history-item::shadow button')) 
     }); 
+0

我聽說陰影仍然是一種實驗技術。我沒想到他們已經使用過它。 –

+0

這是一年或兩年前更實驗的方式,現在它有很多的用途和瀏覽器甚至在內部使用它的元素。如果您在各自的檢查員中啓用它,您可以看到它。 –