[英]Refuse to load JS in Dart
在我的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/"
有谁知道如何解决?
编辑
此答案无法在Dart 中的google chrome扩展中加载外部javascript 。
表现:
..."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'}"]);
结果:
空值
例外:空对象没有方法'callMethod'。
Dart不动态支持脚本注入:
那么,如何更改内容安全策略?
编辑2
当我安装应用程序时,Chrome报告此错误:
在适用于Chrome的打包应用中,您不能使用"content_scripts"
, "content_security_policy"
和"tabs"
字段。
Dart也不动态支持脚本注入。 如此处所述:
要使用JS代码,必须将其保存在本地,将其导入到您的html代码中:
<script src="test.js"></script>
并使用库dart:js与代码js进行交互,例如:
test=context['test'];
test.callMethod("login",["var1","var2",...,callback]);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.