如何在其他js文件之前运行 chrome js片段?

How to run chrome js snippet before other js files?

  1. 像这样创建 chrome 片段: window.my_property = "my_property";
  2. 打开任何网站
  3. 运行 片段

我想要我的代码片段 运行 在网站上的其他 js 脚本之前。可能吗?提前致谢。

可以使用 Chrome 扩展。

您可以编写一个扩展(如何做到这一点超出了答案的范围 - 请参阅文档中的一些指南)注入 Content Script"run_at": "document_start" 配置并匹配适合的模式您要将其注入的页面。

然后,您的代码在页面加载之前执行 - 此时它基本上只包含 document 节点。如果您需要操作节点,那您就不走运了——有些脚本可能会在节点进入树之前执行。如果你只是想执行类似上面的操作(修改 window 对象),你就可以这样做。

但是,由于 isolated world principle. You need to use a technique to inject your code into the page.

,您仍然需要使其变得更复杂一些

您可以通过使用像 Tampermonkey 这样的用户脚本引擎 方式 更轻松地做到这一点。同样,您需要

// @run-at document-start

如何编写用户脚本再次超出了本答案的范围。

在页面加载之前 运行 chrome js 片段的最简单和临时的方法是将 debugger 放在 HTML 页面的顶部,最好是在 head或者在依赖于您的 js 代码段的 js 代码之前。

<head>
  <script>
    debugger;
  </script>
...

现在,当浏览器处于“在调试器中暂停”状态时,右键单击代码段名称并 运行 立即执行。之后您可以恢复调试器并像往常一样继续在页面上工作。

请记住,此方法仅适用于测试,需要您对页面有控制权(因为您需要编辑页面HTML或JS放置debugger

如果您需要 运行 您的 js 代码段 every-time 或页面不在您的控制范围内,创建 chrome 扩展是目前唯一的解决方案。