Chrome 扩展:在网站脚本之前执行脚本

问题描述 投票:0回答:1

我正在使用一个内容脚本,该脚本从

chrome.storage.local.get
接收数据,然后执行。

我希望它在网站脚本开始执行之前完成所有执行。

问题是:从

chrome.storage.local.get
获取数据需要时间并且是异步的,因此它在网站脚本之前开始执行,但在网站脚本之后完成。

有办法解决吗?比如,在主线程完成之前阻塞主线程之类的?或者不使用

chrome.storage.local.get
向其传递信息?或者我应该用
chrome.webRequest
延迟页面的所有请求?

  "content_scripts": [
    {
      "run_at": "document_start",
      "matches": ["<all_urls>"],
      "js": ["content.js"],
      "match_about_blank" : true
    }
  ],

内容.js:

(async () => {
   // website's scripts are not yet executed
   let data = await chrome.storage.local.get("data");
   // website's scripts are already executed
})();
google-chrome-extension
1个回答
0
投票

您无法从 JavaScript 中的异步操作中获取同步结果。你就是做不到。

也许您可以使用代理服务器执行 MITM(中间人),将网页代理到您控制的服务器。

https://developer.chrome.com/docs/extensions/reference/api/proxy

© www.soinside.com 2019 - 2024. All rights reserved.