我正在尝试简化我的生活,并通过查询删除 chrome 历史记录。我有数百个复选框需要删除,手动删除真的很痛苦。
所以我打开 chrome://history/?q=somequery
,并看到很多复选框。我写道:
document.querySelectorAll('[aria-checked]')
它什么也没返回。好的,我写:
document.querySelectorAll('button')
它什么也没返回!好的,然后我只需点击 Edit HTML
按钮并手动添加一些元素,然后尝试通过 id 获取它:
document.getElementById('foooobar')
你知道吗?没什么。
我不明白它是否使用某种框架或阻止我访问这些元素的东西,但我检查了没有 i-/frame,所以我只是很困惑为什么它不能像预计。
在询问之前我用谷歌搜索并找到了几个答案,人们只想在创建元素之前获取元素,但现在页面已完全加载,元素仍然不可用......
最佳答案
您需要使用::shadow 伪选择器进入 Shadow dom。尝试使用此代码片段来选择所有按钮。
[].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'))
});
关于javascript - getElementById 和 querySelectorAll 在 Chrome 中不起作用 ://history,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44628137/