Javascript 未加载Chrome扩展CSP远程脚本
我正在尝试在我的web扩展中包含一个远程脚本。我想在扩展的各个部分使用它:背景脚本、内容脚本和浏览器操作,但CSP一直阻止我。我已经尝试了所有我能找到的解决办法,但似乎都不管用。我已经在Javascript 未加载Chrome扩展CSP远程脚本,javascript,firefox-addon-webextensions,Javascript,Firefox Addon Webextensions,我正在尝试在我的web扩展中包含一个远程脚本。我想在扩展的各个部分使用它:背景脚本、内容脚本和浏览器操作,但CSP一直阻止我。我已经尝试了所有我能找到的解决办法,但似乎都不管用。我已经在manifest.json中更新了我的CSP,以包含src。这就是我要做的 manifest.json { "author": "me", "manifest_version": 2, "name": "my-a
manifest.json
中更新了我的CSP,以包含src。这就是我要做的
manifest.json
{
"author": "me",
"manifest_version": 2,
"name": "my-app",
"version": "1.1.1",
"description": "the description",
"content_security_policy": "script-src 'self' https://unpkg.com; object-src 'self'",
"icons": {
"16": "icons/trust-nobody-v2-16.png",
"48": "icons/trust-nobody-v2-48.png",
"128": "icons/trust-nobody-v2-128.png"
},
"browser_action": {
"default_popup": "popup.html"
},
"permissions": ["*://*/*", "tabs", "storage", "alarms"],
"browser_specific_settings": {
"gecko": {
"id": "myid@my.id"
}
},
"background": {
"page": "background.html"
},
"content_scripts": [
{
"matches": ["*://*/*"],
"js": ["content-script.js"],
"css": ["content-script.css"]
}
]
}
popup.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<script
type="text/javascript"
src="https://unpkg.com/js-logger/src/logger.min.js"
></script>
<script type="module" src="popup.js"></script>
<link rel="stylesheet" href="popup.css" />
</head>
<body>
<button id="settings">Settings</button>
</body>
</html>
将网络脚本加载到扩展的超级特权上下文中是一个糟糕的想法。永远不要这样做。下载代码并将其作为普通脚本加载。谢谢,我会这样做,但我仍然希望使其在本地开发中发挥作用。编辑manifest.json后是否重新加载扩展?是的,我在编辑manifest.json后重新加载了扩展。可能是因为网络重定向而无法工作。尝试加载最终标记的URL,如
https://unpkg.com/js-logger@1.6.1/src/logger.min.js
这是您无论如何都应该做的,因为这样在更新时事情不会意外中断。
Refused to load the script 'https://unpkg.com/js-logger/src/logger.min.js' because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem:". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback.