@run-at
用于指定脚本何时被注入到页面中执行。
// @run-at document-start
脚本将尽快注入。
// @run-at document-body
如果 body 元素存在,脚本将被注入。
// @run-at document-end
脚本将在文档解析完成后立即执行,即 DOMContentLoadedevent 时或之后注入,这意味着,脚本可以修改文档的结构,但是如果页面中存在大量的脚本需要执行,脚本可能需要等待较长时间才能执行。
DOMContentLoadedevent 事件是在文档(HTML 或 XML)完全加载和解析后触发的事件,不需要等待样式表、图像和子框架的加载完成。也就是说,当 DOM 树构建完成后,DOMContentLoaded 事件就会被触发。
<script>
debugger;
window.addEventListener("DOMContentLoaded", function() {
debugger;
console.log("DOM fully loaded and parsed");
});
</script>
<body>
<h1>Hello World!</h1>
</body>
// @run-at document-idle
如果没有给出@run-at 标记,则这是默认值。表示脚本将在文档解析完成后,等待所有资源加载完成后再执行。这意味着,如果页面中存在大量的资源需要加载,脚本可能需要等待较长时间才能执行。另外,由于脚本是在 DOMContentLoaded 事件之后执行的,因此它不能修改文档的结构。
// @run-at context-menu
表示脚本将在用户右键单击页面时执行。也就是说,当用户在页面上右键单击时,脚本将被注入到页面中执行。注意: 如果使用这个值,将忽略所有 @include 和 @exclude 语句,但是以后可能會更改。
|