Chrome 扩展:在页面加载前注入 JS

IT技术 javascript google-chrome google-chrome-extension
2021-02-24 14:49:56

是否可以在页面加载之前注入 JS,或者是否需要使用内容脚本和方式来完成文档?

例如,有没有一种更快的方法来执行打开页面就变成红色的 JS?

1个回答

在清单文件中声明一个内容脚本"run_at": "document_start"以使其尽快运行,即在构建文档根目录之后(当<head>尚不存在时)。

对于您非常具体的示例,最好改为声明内容样式,类似于内容脚本,但使用"css"键而不是"js".

如果要尽快动态运行脚本,那么chrome.tabs.executeScriptchrome.webNavigation.onCommitted事件触发调用

@RobW,另外,文档写道“如果导航是通过 Chrome Instant 或 Instant Pages 触发的,则完全加载的页面将交换到当前选项卡中”。在这种情况下,window在任何网页代码甚至可以运行之前,是否仍然可以运行脚本来用我自己的代理 win 对象替换网页的对象?
2021-04-17 14:49:56
顺便说一句,清单的 document_start contentscript 将在 之前运行chrome.webNavigation.onCommitted,但它无法访问 bg 可用的 chrome 函数。对于bg,chrome.webNavigation.onCommitted仍然是最早的方式。
2021-04-21 14:49:56
使用 executeScript API,无法保证您的脚本按时运行。如果这很重要,请在 manifest.json 中声明一个脚本
2021-05-03 14:49:56
@RobW, onComitted 在“已从服务器收到至少部分文档”时运行。那么我们如何获得在那之前的那一刻呢?当用户单击地址栏并单击 <Enter> 键的那一刻 [--例如,当他重新加载页面或加载新页面时]。
2021-05-08 14:49:56
特别感谢参考chrome.webNavigation.onCommitted,比chrome.tabs.onUpdated.
2021-05-13 14:49:56