【发布时间】:2018-03-02 04:07:16
【问题描述】:
Chrome 浏览器支持多个用户(角色),因此我们可以加载具有不同 cookie 和会话数据的网页。这很好用,做我想做的事。现在我希望在多个用户帐户上安装一个扩展来在用户之间共享信息。
我看不到该怎么做,请帮忙?
细节和想法:
通过设置一些 cookie,我可以更改目标网页的一些偏好,以使用一些新功能。有些功能不同,但核心信息应该是一样的。我希望通过扩展代码来比较它们。
通过使用 chrome 浏览器的人员功能,(角色)我可以在 chrome 中加载我们网页的旧版本和新版本,并并排比较。
我还有一个 chrome 扩展程序,它可以抓取目标网页,以提取名称、价格、信息等信息。这也很好用。我可以手动检查旧版或新版页面的抓取结果。
现在迎接挑战:我如何比较不同人(角色)上加载的网页之间的抓取结果。每个“人”都安装并运行了扩展程序。
当我使用分机 ID 发送外部消息时,只有同一“人”的分机会收到它。
当我查看每个“人”扩展程序的背景页面时,它们是不同的。为我的扩展设置一个值不会影响我在另一个中的扩展。
// code in background page.
chrome.runtime.onMessageExternal.addListener(
function(request, sender, sendResponse){
console.log('background page was hit');
});
// paste code in browser console.
chrome.runtime.sendMessage('id_here', {getTargetData: true},
function(response) {
console.log(response);
});
【问题讨论】:
-
您是否尝试过使用
SharedWorker或ServiceWorker在浏览上下文之间进行通信?见How can I load a shared web worker with a user-script?
标签: javascript google-chrome-extension external messages