使用扩展程序和内容脚本注入到Chrome的脚本不会先执行

时间:2019-04-09 07:31:03

标签: javascript google-chrome-extension content-script

我需要先执行脚本,然后再执行页面上的任何其他脚本,因此请使用Chrome扩展程序将其插入每个页面。该脚本确实在head元素之前注入,但是以某种方式它仅在我使用Control + F5时才首先运行,否则,如果我仅使用F5或浏览该页面,它将最后运行,即使在我使用开发人员工具检查时它仍处于相同的位置

我的manifest.json

{
  "manifest_version": 2,
  "name": "My test 15",
  "version": "1.0.0",  
  "content_scripts": [
    {
      "matches": ["*://*/*"],
      "js": ["loadscript.js"],
      "run_at": "document_start"
    }
  ],
   "web_accessible_resources": ["test.js"]
}

我的loadscript.js

var s = document.createElement('script');
s.src = chrome.runtime.getURL('test.js');
(document.head || document.documentElement).appendChild(s);

test.js中的脚本

window.alert("hello from test.js");

页面中的脚本

window.alert("hello from page");

当我浏览到localhost上的页面时,所有内容看起来都可以正确加载为

<html>
<script src="chrome-extension://idjbemfgdjiggddofddpkcoccihmnefa/test.js"></script>
<head></head>
<body>
<script>window.alert("hello from page");</script>
</body>

问题是test.js中的脚本仅在按Control + F5时才首先运行。如果即使是第一次或仅使用f5都浏览到该页面,那么test.js中的脚本将最后运行。谁能为此找到解决方案?谢谢。

0 个答案:

没有答案