【问题标题】:How can Chrome Extension talk to itself when installed by different users?Chrome 扩展程序在被不同用户安装时如何与自己对话?
【发布时间】: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);
    });

【问题讨论】:

标签: javascript google-chrome-extension external messages


【解决方案1】:

您不能在客户端上的用户之间共享数据。这将允许您的扩展程序潜在地下载用户的所有数据并与其他用户共享。

也就是说,您可以将数据推送到共享服务器并使用它进行比较(使用 HTTP 或 Websockets)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    相关资源
    最近更新 更多