问题描述
我最近发现了 chrome 扩展 开发并被 runtime.excuteScript 方法卡住了,第三个参数中的回调系统地返回了我一个空对象强> ...
为简洁起见,我将不使用我所有的 manifest.json(v2):
▼ 清单权限:
"permissions": [
"storage","cookies","tabs","background","activeTab","<all_urls>","*://*/*"
]
▼ 清单内容脚本:
"content_scripts": [
{
"matches": ["<all_urls>"],"run_at": "document_end","js": ["js/content-script.js"]
}
]
我的目标是将 localStorage 的内容发送到我的扩展程序。
▼ pop-up.js:
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")
}
);
▼ content-script.js:
localStorage;
▼ 扩展控制台输出:
? Result of content-script: Array(1)
▶︎ 0: {}
length:1
▶︎ __proto__: Array(0)
请向我解释错误,让这个夜晚变得美好!谢谢!
解决方法
我一直没有找到解决方案。 但是我通过使用这种方法发送我的数据解决了这个问题:
▼ content-script.js:
chrome.runtime.sendMessage({'localStorage' : localStorage});
▼ pop-up.js:
chrome.runtime.onMessage.addListener((message) => {message.localStorage});