【发布时间】:2014-10-27 04:34:21
【问题描述】:
为了更好地描述我的问题,我创建了一个用 Dart 编写的 chrome 扩展的小示例。 您可以在Gist 上查看代码或下载扩展程序。
问题
此示例在 Dartium 中运行良好,但编译为 javascript 时出现类型错误:Uncaught TypeError: undefined is not a function for the line:
context['chrome']['runtime']['onMessage'].callMethod('addListener', [onMessageListener]);
我已经走了多远
- 正如您在示例中看到的那样,函数
alert()或console.log()通过dart:js也在 js 扩展中工作。 所以这可能是 dart2js 和添加事件监听器的特殊问题? - 还打印出
context['chrome']['runtime']['onMessage']显示正确的事件对象。 (例如:context['console'].callMethod('log', [context['chrome']['runtime']['onMessage']]);) - 我知道有一个chrome pub包,但是在onMessage中响应接收到的消息时还是有一个bug。另见question。直接通过 dart:js 使用 chrome api 是该 dart 版本的解决方法。
我用代码玩了很多,但都导致相同的错误。现在我没有想法了。希望社区能再次帮助我。
编辑: 我现在按照罗伯特的建议在dartbug.com 上报告了这个错误。 无论如何,如果有人知道,我仍然愿意寻求解决方法或其他方法。
【问题讨论】:
-
安迪,看看stackoverflow.com/questions/25193392/…。它对我有用。
-
是的!很感谢。我已经知道那个线程,但没有意识到这是同一个问题。在这个错误上卡了一个月......谢谢伙计:)
标签: google-chrome-extension dart dart2js dart-js-interop