2017-06-19 21 views
2

私は人生を少し簡素化し、クエリでクロム履歴を削除しようとしています。私は削除する数百のチェックボックスを持っており、それを手動で行うのは本当の苦痛です。getElementByIdとquerySelectorAllはchrome://履歴では機能しません。

だから私はchrome://history/?q=somequeryを開き、多くのチェックボックスを参照してください。私は書いています:

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

そして何も返しません。はい、私は書いています:

document.querySelectorAll('button') 

そして何も返しません! [OK]を、私はちょうどEdit HTMLボタンを押すと、手動でいくつかの要素を追加して、idでそれを取得しよう: enter image description here

document.getElementById('foooobar') 

そして、あなたは何を知っていますか?何もない。

何らかの種類のフレームを使用している場合や、これらの要素にアクセスできない場合はわかりませんが、i-/frameがないことを確認したので、なぜうまくいかないのか混乱しています予想通り。

私はあなたが影に到達する必要があります...

+1

これはポリマーアプリです。 PolymerはWebコンポーネントを使用して、シャドーDOMを作成します。基本的なdomより複雑です – charlietfl

答えて

2

を尋ねる前にGoogleで検索し、人々はちょうど彼らが作成される前の要素を取得したいいくつかの答えを、見つけましたが、今でページが完全にロードされ、要素はまだ利用できませんdom :: shadow pseudoselectorを使用してください。すべてのボタンを選択するにはこのスニペットを試してください。

[].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

これは1年か2年前にはもっと実験的だったが、現在は多くの用途があり、ブラウザは内部的に要素を使用している。あなたがそれぞれのインスペクタでそれを有効にすると、それを見ることができます。 –

関連する問題