Chrome扩展 - onRequest/sendRequest与onMessage/sendMessage的区别

21

我看到一个在Chrome扩展程序中心链接的这个示例扩展程序, 通过检查它,我发现他们使用了

chrome.extension.onRequest.addListener(onRequest);

在 background.js 页面中,为了监听 contentscript.js 并且...
  chrome.extension.sendRequest({}, function(response) {});

在contentscript.js中与background.js页面交流。但我无法在网络上找到这些函数的文档,Google的Message Passing guide只提到了这一点。
chrome.extension.sendMessage(...)

发送和
chrome.extension.onMessage.addListener(...)

我应该使用哪些函数?sendRequest/onRequest已经过时了吗?Google的开发指南还是最新的吗?

(注意:原文中的粗体字为强调,翻译时可以根据需要适当调整语气)

2个回答

20

最终从Chrome-21中删除。 - QwiglyDee
3
谢谢。我希望谷歌提到过这一点,但可惜只能再次靠Stack Overflow来解决问题! - snapfractalpop
我想这可能是情况。不幸的是,这个被弃用的API调用仍然在Chrome扩展程序的“下载”示例中使用。 - Jazzepi
当在chrome.extension中使用for循环时,我们仍然可以看到onMessage/onRequest和sendMessage/sendRequest方法。为什么Chrome不直接删除它呢? - shawnXiao

8

请注意API路径的更改:

  • chrome.extension.onRequest
  • chrome.extension.sendRequest

已经变为:

  • chrome.runtime.onMessage
  • chrome.runtime.sendMessage

这将避免您因为例如 chrome.extension.onMessage 无法工作而感到沮丧!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接