首页 文章

拒绝在Dart中加载JS

提问于
浏览
0

在我的Dart金额网页中这个脚本:

<script src="https://test.net/test/test.js"></script>

但是当你启动应用程序时它会给我以下错误:

拒绝加载脚本'https://test.net/test/test.js',因为它违反了以下内容安全策略指令:“default-src'self'chrome-extension-resource:” . 请注意,'script-src'未明确设置,因此'default-src'用作后备 .

我还在清单中设置了内容安全策略,但没有任何结果:

"content_security_policy": "script-src 'self' https://test.net/test/"

有谁知道如何解决?

Edit

Dart中的这个答案Loading external javascript in google chrome extension不起作用 .

表现:

..."permissions":["tabs","https://test.net/test/"],
"content_security_policy": "script-src 'self' https://test.net/test/; object-src 'self'",
"content_scripts": [
{
  "js": ["https://test.net/test/test.js"]
}
]...

码:

JsObject spark=context['spark'];
print(spark);
spark.callMethod('login',["{username: 'test@email.com', password: 'test'}"]);

结果:

null异常:null对象没有方法'callMethod' .

Dart不支持动态脚本注入:

是否会为dart注入动态代码?

那么如何更改内容安全策略?

Edit 2

安装应用时Chrome会报告此错误:

enter image description here

1 回答

  • 2

    在Chrome的打包应用中,您无法使用 "content_scripts""content_security_policy""tabs" 字段 .

    Dart也不支持动态脚本注入 . 如下所述:

    是否会为dart注入动态代码?

    要使用JS代码必须在本地保存,将其导入您的html代码:

    <script src="test.js"></script>
    

    并使用库dart:js与代码js交互,如:

    test=context['test'];
      test.callMethod("login",["var1","var2",...,callback]);
    

相关问题