sac*_*024 2 javascript document google-chrome-extension
InjectDetails我在 Chrome 扩展代码中使用对象。我对现场提到的文件有点困惑runAt。
这是文档的片段
runAt ( optional enum of "document_start", "document_end", or "document_idle" )
Run Code Online (Sandbox Code Playgroud)
这里引用了哪一个文档?可能的选项是:-
我应该如何验证这一点?
如果allFrames是true,则“文档”仅指顶级文档。
否则,它引用每个匹配框架(例如顶级、iframe)的文档。
run_at您可以在内容脚本文档中找到更多信息:
Run Code Online (Sandbox Code Playgroud)run_at string选修的。控制何时注入文件
js。可以是“document_start”、“document_end”或“document_idle”。默认为“document_idle”。在“document_start”的情况下,文件将在来自 的任何文件之后
css、但在构造任何其他 DOM 或运行任何其他脚本之前注入。在“document_end”的情况下,文件会在 DOM 完成后立即注入,但在加载图像和框架等子资源之前。
在“document_idle”的情况下,浏览器选择在“document_end”和
window.onload事件触发后立即注入脚本的时间。注入的确切时刻取决于文档的复杂程度以及加载所需的时间,并针对页面加载速度进行了优化。注意:使用“document_idle”,内容脚本可能不一定会接收该
window.onload事件,因为它们可能会在该事件已经触发后运行。在大多数情况下,对于在“document_idle”运行的内容脚本来说,监听事件onload是不必要的,因为它们保证在 DOM 完成后运行。如果您的脚本确实需要在 之后运行window.onload,您可以使用该属性检查 onload 是否已经触发document.readyState。
附言。属性名称采用驼峰式命名chrome.tabs.executeScript( runAt, allFrames),但在清单文件中拼写为下划线 ( run_at, all_frames)。