我正在寻找一种从Chrome扩展程序同步发送和接收消息的方法。我们的想法是以同步方式从传统网页(网络应用程序)调用我的扩展程序中定义的功能,这样我就不必在收到结果之前等待。
不幸的是,我读了Synchronous message passing in chrome extensions?和https://code.google.com/p/chromium/issues/detail?id=135095。两人都说不可能。
但我认为XMLHttpRequest可以进行同步调用。
我知道这肯定不可能,但我还是要问..是否有办法以这样的方式使用XMLHttpRequest对象,以便我们可以与扩展同步通信?
答案 0 :(得分:0)
我很抱歉,但答案仍然是没有。我不明白为什么使用XMLHttpRequests可以帮助进行与Chrome API完成(异步)的任何操作,但我们假设你有一些content_script.js
在某个页面内运行,你需要向background.js
发送消息。 如何使用XMLHttpRequest
来完成此操作?向background.js
发出请求不会让您有机会运行其代码,只能阅读它。这是因为background.js
中使用的大多数API方法在内容脚本中都不可用。这与Chrome扩展程序中发生的任何其他异步操作相同。
因此,问题在于 Chrome扩展程序无法使用XMLHttpRequest
在其环境中进行通信,因此,您无法以这种方式使用它们。