【发布时间】:2021-02-18 08:37:53
【问题描述】:
【问题讨论】:
标签: google-chrome dom google-chrome-devtools
【问题讨论】:
标签: google-chrome dom google-chrome-devtools
一种解决方法是使用 devtools-on-devtools 从 devtools UI 获取该数据:
切换到Elements 面板
打开 devtools-on-devtools(见下文)并在控制台中运行:console.log($$('devtools-node-text', UI.panels.elements._breadcrumbs.shadowRoot).map(el => $$('span', el.shadowRoot).map(el => el.innerText).join('')).join('\n'))
它会像这样打印文本:
html.html__responsive.html__unpinned-leftnav body.question-page.unified-theme div.container div#content.sn-p-隐藏实际数据存储在UI.panels.elements._breadcrumbs及其各种属性中。
作为一个幻想它的例子:
(() => {
let num = 0;
const args = [];
const root = UI.panels.elements._breadcrumbs.shadowRoot;
$$('devtools-node-text', root).forEach(bc => {
num++;
let info = '';
$$('span', bc.shadowRoot).map(({innerText: s}, i) => {
if (!i) {
args.push(`font-weight:bold;${s === 'iframe' ? 'color:red;' : ''}`, s,
'font-weight:normal');
} else {
info += s;
}
});
args.push(info);
});
console.log('%c%s%c%s\n'.repeat(num), ...args);
})();
为方便起见,您可以将代码保存在 snippets 中并稍后从那里运行它,或者在命令面板中输入 sn-p 名称(Ctrl-P 或 Cmd-P 热键)。
【讨论】: