【问题标题】:Google Chrome Extension - Getting data from websiteGoogle Chrome 扩展程序 - 从网站获取数据
【发布时间】:2022-07-19 20:54:29
【问题描述】:

我正在设计我的 Google Chrome 扩展程序来存储在完全不同的网站中创建的变量,这意味着我需要传递该变量。

这是网站script.js中的代码:

var editorExtensionId = "extension";

'use strict';
function x(){
    chrome.runtime.sendMessage({n:1});
}
chrome.runtime.onMessage.addListener(function(loginKey){
    console.log(loginKey.n);
});
chrome.action.onClicked.addListener(function(tab){
    chrome.scripting.executeScript({
        target: {tabId: tab.id},
        function: x
    });
});

然而,在控制台日志中,它给了我错误“Uncaught TypeError: Cannot read properties of undefined (reading 'addListener') 在 script.js:68:26"

我想知道如何解决这个问题。

【问题讨论】:

  • “这是网站 script.js 中的代码” chrome.runtime.onMessage & chrome.action.onClicked 只能在您的扩展程序中使用。您将无法在网站上使用这些!
  • 是的,我也是这么想的。那么我应该如何将变量发送到扩展程序呢?
  • 抱歉,对 Chrome 扩展不太熟悉。

标签: javascript html google-chrome-extension


【解决方案1】:

您的扩展程序可以在一个网站上运行,但您想要其他网站的一些数据?

  • 首先,为您的 manifest.json 文件添加权限存储以启用 Chrome 本地存储。

  • 然后使用“Document.querySelector()”或“Document.getElementById()”从网站2获取您需要的任何数据,通过“chrome.storage.local.set”将其写入chrome存储

  • 最后在网站 1,检索您通过“chrome.storage.local.get”存储的变量

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-16
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    相关资源
    最近更新 更多