Chrome网页扩展如何使用chrome.scripting.executeScript将javascript函数注入网页?

weylhg0b  于 2022-12-28  发布在  Go
关注(0)|答案(1)|浏览(732)

我有一个Chrome Manifest V3 Web扩展,需要在每个页面的页面加载时将JavaScript注入到网页中(对于JavaScript的确切运行时间并不挑剔)。
这是为了使网页上的javascript可以有选择地调用web扩展定义的函数。
根据https://developer.chrome.com/docs/extensions/reference/scripting/上的文档,chrome.scripting.executeScript可以满足我的需求:
你可以使用chrome.scripting API将JavaScript和CSS注入网站。
chrome.scripting.executeScript函数将tabId作为一个强制参数,但文档中没有任何内容指明从何处获取tabId,文档引用了一个未指定的函数getTabId(),但除此之外什么也没说。
另外,文档没有说明chrome.scripting.executeScript函数在哪里运行。在内容脚本中?理论上,这是行不通的,因为标签ID是不可访问的。在后台服务工作者中?如果页面加载时服务工作者没有运行,会发生什么?
请注意,以下问题与此问题无关:

xtfmy6hx

xtfmy6hx1#

去拿table...
在Manifest V3中,将其作为值传递。

chrome.action.onClicked.addListener((tab) => {
  if(!tab.url.includes("chrome://")) {
    chrome.scripting.executeScript({
      target: { tabId: tab.id },
      function: reddenPage
    });
  }
});

查看Google's Chrome Extension example "Page Redder"以获取完整代码

相关问题