我正在尝试使用 Dart 编写 Chrome 扩展程序。到目前为止,除了内容脚本之外,一切都很顺利——内容脚本 dart 文件中的“main”函数似乎没有运行。
更具体地说,首先不能使用 Dartium,因为在 manifest 中的“js”规则中提供 dart 文件会导致 Dartium 提示;我接下来尝试编译 dart 文件(使用 csp:true)然后使 list 直接包含编译后的 js 文件 --- 然后我被卡住了,似乎无论我尝试什么,(编译的)“main”功能只是不运行。
有什么建议么?
更新:
list 文件:
{
"manifest_version": 2,
"name": "Assistant",
"description": "Assists you with various tasks.",
"version": "1.0",
"minimum_chrome_version": "26.0",
"permissions": ["<all_urls>", "storage"],
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": [
"packages/browser/dart.js",
"dart_content_script.dart.js"
],
"run_at": "document_start",
"all_frames": false
}
],
"browser_action": {
"default_popup": "popup.html",
"default_icon": "bulb.png"
},
"background": {
"page": "background.html"
}
}
内容脚本 dart 文件:
void main() {
print('main done');
}
pubspec.yaml:
name: AssistentExtension
dependencies:
browser: any
chrome: any
dev_dependencies:
unittest: '>=0.10.0'
transformers:
- $dart2js:
csp: true
在 Chrome 开发者控制台中,我可以找到字符串“main done”,表示“main”函数确实包含在编译的 js 中,但没有打印任何内容,表示它没有运行。
最佳答案
我遇到了和你一样的问题。当时我查看了控制台日志 ,一个日志说 chrome 包丢失(但我不知道是什么原因造成的),所以我手动将它添加回构建文件夹,然后它工作了,所以我可以看到我的日志写在 main() 中。
当我运行 test_ext 附带 official chrome pub ,我在控制台日志中收到一条不同的错误消息,我再次解决了它,然后 test_ext sample 也运行良好。
因此,我的建议是查看控制台日志,它可能会有所帮助。您可以打开控制台右键单击 进行扩展扩展的弹出 UI 并选择'检查元素 ' 打开它。
关于google-chrome-extension - 在 Chrome 扩展内容脚本中使用 Dart 不运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26367475/