在 Chrome 扩展内容脚本中使用 Dart 无法运行?

2024-01-06

我正在尝试使用 Dart 编写 Chrome 扩展。到目前为止,除了内容脚本之外,一切都很顺利——内容脚本 dart 文件中的“main”函数似乎没有运行。

更具体地说,首先,Dartium 无法使用,因为在清单中的“js”规则中给出 dart 文件会导致 Dartium 抱怨;接下来我尝试编译 dart 文件(使用 csp: true),然后使清单直接包含编译后的 js 文件 --- 然后我陷入困境,似乎无论我尝试什么,(编译的)“main”函数只是不运行。

有什么建议么?

Update:

清单文件:

{
  "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 did”,这意味着“main”函数确实包含在编译后的js中,但没有打印任何内容,这意味着它没有运行。


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

当我跑步时test_ext https://github.com/dart-gde/chrome.dart/tree/master/app/test_ext附带官方 Chrome 酒吧 https://github.com/dart-gde/chrome.dart,我在控制台日志中收到不同的错误消息,我再次解决了它,然后test_ext样品也运行良好。

所以,我的建议是查看控制台日志,它可能会有所帮助。你可以打开console通过右键单击进行扩展扩展程序的弹出 UI并选择 '检查元素' 打开它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Chrome 扩展内容脚本中使用 Dart 无法运行? 的相关文章

随机推荐

  • 在SSIS数据流中动态创建表

    如何让 SSIS 数据流创建一个不存在的表 每次我尝试运行该包时 都会出现错误 指出目标表不存在 由于您希望包创建一个表然后填充它 因此您可以使用以下命令创建一个表 Execute SQL任务 只需为其提供创建表的脚本即可 如果您无法选择使
  • 检查Python中的整数溢出

    class Solution object def reverse self x type x int rtype int negative False if x lt 0 x x 1 negative True else x x sum
  • T --> IHandler 之间的映射

    我有以下界面 public interface IHandler
  • 如何获取管道另一端的pid?

    我想知道管道另一端的pid 如果是 Linux 我可以匹配 idls l proc SELF PID fd 0就像这些命令一样 root host command1 command2 I ve known command2 s PID 59
  • 如何删除 django 中的数据库表?

    我改变了模型并进行了迁移 然后我又更改了一次模型 当尝试 python manage py migrate 时出现错误 Operations to perform Apply all migrations admin auth conten
  • 404 - 请求的资源不可用。 (Spring-MVC)

    我对 Spring MVC 视图解析器不太熟悉 我试图从我的控制器返回一个 JSP 我的控制器方法正在正确执行 但是当返回视图时 我得到404 The requested resource is not available error 这是
  • Javascript / Nodejs 在 Nodejs 模块的顶层使用等待

    我尝试找到问题的解决方案 但找不到它 并且正在寻找一些 最佳实践示例 我有一个 Nodejs Express 应用程序 我的函数被分割在文件中 例如我有这个控制器 oktacontroller js var okta api key
  • IE 和 Firefox 中的按钮大小不相等

    我的 jsp 页面上有几个按钮 我使用的样式为 buttonblue background color 003366 border color 99CCFF color FFFFFF font family Verdana Arial He
  • 对如何处理 CORS OPTIONS 预检请求感到困惑

    我是跨源资源共享的新手 并试图让我的网络应用程序响应 CORS 请求 我的 web 应用程序是在 Tomcat 7 0 42 上运行的 Spring 3 2 应用程序 在我的 web 应用程序的 web xml 中 我启用了 Tomcat
  • IISExpress 8 无法读取配置文件redirection.config

    我正在使用 IISExpress8 运行 Windows Server 2008 R2 x64 当导航到 c Program Files x86 IIS Express gt iisexpress exe it says 文件名 重定向 c
  • Rails Chartkick:只需要轴上的整数值。使用离散的还是其他的?

    假设我有以下代码 使用 Chartkick 这会产生以下图表 我希望使用整数来标记垂直轴 不是小数 我认为discrete选项应该这样做 但对于这个例子 它所做的只是将水平轴上元素的格式从时间更改为数字 即以下代码 产生这个 所以我的问题是
  • 使用 TOR 运行 python 脚本

    大家好 首先我想确保有类似的主题 但没有公认的答案或明确的回应 所以我想把它们结合起来再问一遍 我有以下脚本 import urllib2 proxy urllib2 ProxyHandler http 127 0 0 1 9050 ope
  • 我想使用PHP的PDO将数据插入mysql数据库。但数据没有插入

    我想使用PHP的PDO将数据插入mysql数据库 但数据没有插入 我以前使用过PDO 但没有遇到任何问题 但在下面的例子中 我不明白我哪里做错了 谁能帮帮我吗 输出显示良好 有回声
  • 如何在 R 中为 Quantstrat 编写自定义规则函数 - 将追踪止损订单替换为 stoplimit 和ruleOrderProc

    我的目标是使用下面概述的规则来生成信号来放置新的 stoplimit 订单来取代我的追踪止损 我不希望我的止损无限期地跟踪 直到它达到我的盈亏平衡价格 如果已经可以以某种方式实现这一点 请告诉我 我希望在 quantstrat 中编写一个自
  • 如何通过短信或彩信将超链接发送到手机

    我一直在寻找一种方法 通过短信或彩信将具有不同外观的 URL 的超链接发送到手机 我能想到的唯一例子如下 url http www google co uk Click Here url 所以上面的代码会显示 点击这里 当您单击 单击此处
  • 如何使用 JSON-simple (Java) 判断返回是 JSONObject 还是 JSONArray?

    我正在访问一项服务 有时会得到这样的结果 param1 value1 param2 value2 有时会得到这样的回报 param1 value1 param2 value2 param1 value1 param2 value2 我如何知
  • 无法在 Gerrit 中合并

    每当我向 Gerrit 发送评论并且该评论等待一段时间时 我都会收到cannot mergeGerrit 中的消息 我理解它的到来 因为其他人会更改相同的文件并在我之前交付 我正在尝试以下解决方法来解决我的问题 放弃当前的审查 创建一个新的
  • GEKKO RTO 与 MPC 模式

    这是一个由此衍生的问题one https stackoverflow com questions 60761440 variable bounds in mpc with gekko 在发布我的问题后 我找到了一个解决方案 更像是强制优化器
  • 将 Admob 添加到 libgdx

    RelativeLayout layout new RelativeLayout this AndroidApplicationConfiguration config new AndroidApplicationConfiguration
  • 在 Chrome 扩展内容脚本中使用 Dart 无法运行?

    我正在尝试使用 Dart 编写 Chrome 扩展 到目前为止 除了内容脚本之外 一切都很顺利 内容脚本 dart 文件中的 main 函数似乎没有运行 更具体地说 首先 Dartium 无法使用 因为在清单中的 js 规则中给出 dart