Google chrome extension 如何使用内容脚本和消息传递从网站收集元数据并将其发送回我的Chrome扩展?

Google chrome extension 如何使用内容脚本和消息传递从网站收集元数据并将其发送回我的Chrome扩展?,google-chrome-extension,metadata,message-passing,content-script,Google Chrome Extension,Metadata,Message Passing,Content Script,我正在创建一个Chrome扩展,对内容脚本和消息传递的工作原理感到非常困惑。下面我详细介绍了我的扩展的目标和到目前为止的代码 扩展需要: 对所有网页都处于活动状态 从用户所在的每个站点收集元数据(特别是关键字) 将元数据传回扩展,使扩展能够分析关键字并采取相应的行动。扩展将根据网站类别(即社交媒体、博客、体育网站)显示不同的文本] 我没有包括popup.html的代码,因为当你点击我的扩展名图标时,我可以得到弹出的普通文本 到目前为止我的文件: manifest.json "manifest_

我正在创建一个Chrome扩展,对内容脚本和消息传递的工作原理感到非常困惑。下面我详细介绍了我的扩展的目标和到目前为止的代码

扩展需要:

  • 对所有网页都处于活动状态
  • 从用户所在的每个站点收集元数据(特别是关键字)
  • 将元数据传回扩展,使扩展能够分析关键字并采取相应的行动。扩展将根据网站类别(即社交媒体、博客、体育网站)显示不同的文本]
  • 我没有包括popup.html的代码,因为当你点击我的扩展名图标时,我可以得到弹出的普通文本

    到目前为止我的文件:


    manifest.json

    "manifest_version": 2,
    "name": "my extension",
    "description": "This is my first chrome extension.",
    "version": "1.0",
    
    "content_scripts": [ {"matches": ["<all_urls>"], "run_at": "document_end", "js["testscript.js"] }],
    
    "permissions": ["tabs", "http://*/*", "background"],
    
    "background": "background.html",
    
    "browser_action": { "default_icon": "my_logo.png", "default_popup": "popup.html" }
    


    我们将非常感谢您的任何帮助。我读过很多教程和谷歌的文档,但我就是不明白。提前谢谢你

    几个月前,我尝试为devtools扩展创建类似smth的单例 它在后台页面内容页面和devtools页面之间有消息传递,请看一看


    希望对您有所帮助

    您使用了哪些文档?你问题中的API格式在10多个Chrome版本之前就被弃用了。要获得最新信息,请阅读文档并使用/而不是
    chrome.extension.*
    var meta_keywords = getKeywords();
    
    chrome.extension.sendRequest(meta_keywords);
    
    function getKeywords() {
       data = document.getElementsByTagName("meta");
       keywords = []; 
       var len = data.length;
       for (var i = 0; i < len; i++) {
         if (data[i].name == 'keywords') {
            keywords = data[i].content.split(",");
         }
       }
       return keywords;
    }
    
    //I really have no idea what this means or how to use it...
    //I just know that I need some sort of onRequest function
    
    chrome.extension.onRequest.addListener(function(keywords, sender, sendResponse) {})