javascript - Chrome 扩展 list V3 如何读取我的用户正在查看的网页的 HTML 和文本内容

标签 javascript google-chrome google-chrome-extension chrome-extension-manifest-v3

我正在尝试学习如何制作 chrome 扩展,并且一直在尝试使用新的 manifest v3 进行学习,因为我的理解是这将成为 future 的常态。很多文档都非常残酷,而且似乎落后了。
我正在寻找一个简单的扩展来查找网站上的特定关键字。我想在用户访问网站时找到与特定 html id 匹配的文本。
目前,我的后台脚本调用一个单独的内容脚本来发现用户导航到的网站何时与我想要搜索的网站匹配。如果我到达适当的网站,则会调用另一个内容脚本来搜索该网站。
这是我的后台脚本中的相关代码:

if (onSite){
  scrapeSite(onSite);
}
onSite 只有在填充了我要访问的网站的 url 时才真正/活跃。
scrapeSite 的相关代码是
function scrapeSite{
   try {
    book = document.getElementById("bookTitle");
    if (book){
     console.log(`${book}`);
     }
    }
    catch(err) {
      console.log(`No Book Title Found`);
      console.log(`${book}`);
     }
    }
}

如果我删除了 catch(err),那么控制台日志会输出以下错误处理响应:ReferenceError: document is not defined at scrapeSite
我真的只是想在这里学习,所以如果你有任何关于更好的文档、推荐的 stackoverflow 问题等的建议,我将不胜感激。另外,如果你一直在学习 manifest v3 并且有关于好的文档/教程的建议,那就太好了。

最佳答案

您需要做的是将内容脚本添加到 list 文件中,如下所示:

"content_scripts": [
        {
            "matches": ["<all_urls>"],
            "js": ["content_script.js"]
        }
    ],
将“”替换为要在其中注入(inject)内容脚本的站点的 URL。
根本不需要后台脚本,如果 URL 匹配 URL 匹配模式,内容脚本会自动注入(inject)。
更多信息,请阅读 this page .

关于javascript - Chrome 扩展 list V3 如何读取我的用户正在查看的网页的 HTML 和文本内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67673676/

相关文章:

javascript - 如何从异步调用返回响应?

javascript - 如何检查 firebug 是否安装了 javascript?

css - Firefox 不应用计算样式

html - PathSegList 在 Chrome 48 中被弃用并移除

google-chrome - 使用 Google API 的 Chrome 扩展中的 PUT 请求未呈现

javascript - 表达sendFile函数

javascript - Vue 事件处理程序,在所有组件之间共享

javascript - 禁用 chrome 中的 "open session"弹出窗口

javascript - 无法从 HttpListenerRequest 读取 InputStream

javascript - Chrome 扩展 javascript 函数未定义