【问题标题】:Using Dart in Chrome extension content script does not run?在 Chrome 扩展内容脚本中使用 Dart 不运行?
【发布时间】: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


【解决方案1】:

我遇到了和你一样的问题。当时我查看了控制台日志,一个日志说chrome包丢失(但我不知道是什么原因造成的),所以我手动将它添加回构建文件夹,然后它就这样工作了我可以看到我的日志写在 main() 中。

当我运行 official chrome pub 附带的 test_ext 时,我在控制台日志中收到不同的错误消息,我再次解决了它,然后 test_ext 样本也运行良好。

所以,我的建议是查看控制台日志,它可能会有所帮助。您可以通过右键单击扩展的弹出 UI 并选择“Inspect Element”来打开扩展的控制台

【讨论】:

    猜你喜欢
    • 2015-12-24
    • 2023-03-19
    • 2016-09-09
    • 1970-01-01
    • 2012-06-20
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 2017-04-22
    相关资源
    最近更新 更多