【发布时间】:2020-06-03 13:57:33
【问题描述】:
我正在使用 Google Blockly 开发 Chrome 应用程序。为了动态运行 JavaScript 代码,我想使用 eval() 函数。
Chrome app relaxing the default policy using manifest
我试过上面的链接。我按照 chrome 文档的建议使用了这个清单。
manifest.json
{
"manifest_version": 2,
"name": "Blockly",
"version": "1.0.0",
"icons": {
"128": "icon_128.png"
},
"permissions": [],
"app": {
"background": {
"scripts": ["background.js"]
}
},
"minimum_chrome_version": "46",
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}
inject.js
window.addEventListener("load", function() {
document.getElementById("myBtn").addEventListener("click", function() {
let code = 'initiate();';
try {
eval(code);
} catch (e) {
console.log(e);
}
});
});
我仍然收到此错误:
EvalError:拒绝将字符串评估为 JavaScript,因为 'unsafe-eval' 不是以下允许的脚本来源 内容安全策略指令:“script-src 'self' blob: 文件系统:'wasm-eval'"。
在 HTMLButtonElement。 (inject.js:40)
【问题讨论】:
标签: javascript google-chrome-app content-security-policy