首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么chrome.tabs.executeScript方法的回调结果总是返回一个空对象?

为什么chrome.tabs.executeScript方法的回调结果总是返回一个空对象?
EN

Stack Overflow用户
提问于 2021-04-29 14:25:58
回答 1查看 283关注 0票数 0

我最近发现了chrome扩展的开发,并被困在了方法中,第三个参数中的回调系统地返回一个空对象.

为了简洁起见,我将不使用我的所有manifest.json(v2):

清单权限:

代码语言:javascript
运行
复制
  "permissions": [
    "storage",
    "cookies",
    "tabs",
    "background",
    "activeTab",
    "<all_urls>",
    "*://*/*"
  ]

清单内容-脚本:

代码语言:javascript
运行
复制
  "content_scripts": [
    {
      "matches": ["<all_urls>"],
      "run_at": "document_end",
      "js": ["js/content-script.js"]
    }
  ]

我的目标是将localStorage的内容发送到我的扩展。

pop-up.js:

代码语言:javascript
运行
复制
chrome.tabs.executeScript(
  null, 
  { file: "js/content-script.js" },
  (result) => {
    if(result) console.log( " Result of content-script:",result ) 
    else console.log(" No content-script, no result")
  }
);

内容-script.js:

代码语言:javascript
运行
复制
localStorage;

扩展控制台中的输出:

代码语言:javascript
运行
复制
 Result of content-script: Array(1)
   ▶︎ 0: {} 
   length:1
   ▶︎ __proto__: Array(0)

请给我解释一下这个错误,让这是一个美妙的夜晚!谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-05-02 20:21:08

我一直没找到解决办法。但是我通过用这个方法发送数据来解决这个问题:

内容-script.js:

代码语言:javascript
运行
复制
chrome.runtime.sendMessage({'localStorage' : localStorage});

pop-up.js:

代码语言:javascript
运行
复制
chrome.runtime.onMessage.addListener((message) => {message.localStorage});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67319351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档