gpt4 book ai didi

javascript - 请解释与 Google Chrome 扩展程序的后台通信

转载 作者:搜寻专家 更新时间:2023-11-01 04:46:52 33 4
gpt4 key购买 nike

我已反复阅读此页面,并运行示例:

http://code.google.com/chrome/extensions/background_pages.html

但是我好像没有掌握background.html、popup.html和content.js之间的后台通信是怎么做的。我想发送消息来触发函数、获取响应并处理这些响应。 map 样本有点接近于帮助我,但我只需要一些 super 简单的东西而不需要所有 map 的东西。 (请注意,我知道 jQuery 和 Javascript,所以如果您愿意,可以随意混合使用一些 jQuery。)

最佳答案

所有扩展页面(背景页面、弹出窗口、信息栏、页面操作都在同一个扩展中运行。将其视为具有一个域的网页。该域是您的扩展 ID。这些扩展页面中的每一个都像一个常规页面(与开发网站时类似)。

所有扩展页面(上面提到的)都可以轻松地相互通信,您可以通过多种方式实现:

  1. chrome.extension.getBackgroundPage()

    你直接做吧!我会尽可能使用这种方法。在我看来它更清洁。

    var bkg = chrome.extension.getBackgroundPage();`  
    bkg.ping();`
  2. chrome.extension.onRequest.addListenerchrome.extension.sendRequest

    如下图,可以用extension messaging传递信息也是如此。当我希望它面向事件时,我会使用这种方法。我很少在扩展页面中使用它。

    popup.html

    chrome.extension.sendRequest({method: 'ping'}, function(response) {
    // response.result
    });

    background_page.html

    chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
    if (request.method == 'ping') {
    sendResponse({result: 'pong'});
    }
    });

现在“扩展页面”和“Content Scripts”之间存在差异。请仔细阅读该文档以理解它。内容脚本不是扩展页面,您不能做扩展页面可以做的事情。您不能直接与上述任何页面通信。内容脚本是在网页上下文中运行的 JavaScript 文件,而不是扩展页面。这是一个需要认识到的重要区别。

因此,为了在您的扩展页面和内容脚本之间进行通信,您需要使用 Messaging .该页面有很多信息,我强烈建议您阅读它。它与我们使用消息传递的方式(上面的第 2 步)非常相似,但唯一不同的是您发送请求的方式。您需要使用 chrome.tabs.sendRequest ,因为您需要从扩展页面(背景、弹出窗口、页面等)向内容脚本发送单个请求。为此,您需要知道选项卡的 ID。请看Tab API了解更多信息。

如果您的扩展经常与您的内容脚本通信,您可以使用长期连接,这在我喜欢的上面的消息部分中有很好的解释。

我已经回答了很多问题,其他人也回答了类似的问题。由于您在 JavaScript 方面经验丰富,我强烈建议您阅读文档,它拥有您需要的一切。阅读 API,希望您现在了解 Content Script 和 Extension Pages 之间的区别,它们之间的通信是通过 Extension Messaging。

关于javascript - 请解释与 Google Chrome 扩展程序的后台通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4743540/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com