当试图将第三方js文件加载到内容脚本中时,使用的是chrome扩展名。我正面临一个unsafe-eval错误
我的manifest.json看起来像这样
{
"manifest_version": 3,
"name": "Test",
"version": "1.0",
"host_permissions": ["https://mail.google.com/"],
"content_scripts": [
{
"matches": [
"https://mail.google.com/*"
],
"js": ["3rdparty.js", "code.js"],
"run_at": "document_end"
}
]
}加载之后,我收到了这个错误
错误日志: EvalError:拒绝将字符串计算为JavaScript,因为在以下内容安全策略指令中,‘不安全-eval’是不允许的脚本来源:" script -src 'self'“。
因此,我尝试将csp添加到清单文件中。
{
...,
"content_security_policy": {
"extension_pages": "script-src 'self' 'unsafe-eval'; object-src 'self'"
}
}然后,我收到了chrome中的错误,告诉它无法加载扩展
‘content_security_script._pages’:指令'script-src'. 中的不安全CSP值“‘不安全-eval’”
发布于 2021-09-26 10:02:31
恐怕在清单3中您不能使用'unsafe-eval'
您是在执行远程代码还是任意字符串?您不能再使用chrome.scripting.executeScript({code:‘.})、eval()和新函数()执行外部逻辑。
您必须将所有脚本移动到远程或本地文件中。您可以在远程文件上生成脚本(例如。并使用chrome.scripting.executeScript (而不是使用eval() )执行它,或者考虑迁移回MV2。
https://stackoverflow.com/questions/68811797
复制相似问题