【发布时间】:2014-10-14 18:12:02
【问题描述】:
我正在尝试使用 Dart 编写 Chrome 扩展程序。到目前为止,除了内容脚本之外,一切都很顺利 --- 内容脚本 dart 文件中的“main”函数似乎没有运行。
更具体地说,首先不能使用 Dartium,因为在 manifest 中的“js”规则中提供 dart 文件会导致 Dartium 抱怨;我接下来尝试编译 dart 文件(使用 csp:true)然后使清单直接包含编译后的 js 文件 --- 然后我被卡住了,似乎无论我尝试什么,(编译的)“main”函数只是不运行。
有什么建议吗?
更新:
清单文件:
{
"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中,但是什么都没有打印,意思是它没有运行。
【问题讨论】:
-
显示一些代码和清单是合适的。
-
你是如何运行它的?
manifest.json上的 Conext 菜单 > 作为 Chrome 应用运行? -
@Günter Zöchbauer:我从 Chrome 扩展管理页面将扩展加载为未打包的扩展。
-
我在 Chrome 扩展方面做得不多,而且已经有一段时间了。我只有一个背景页面,它引用包含 main ` 的脚本脚本>
. This worked for me. -
@Günter Zöchbauer 感谢您提供信息。是的,在我有 html 的情况下,Dart 就可以工作 --- 这里的痛苦在于内容脚本,不支持 html...
标签: google-chrome-extension dart