作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
语境
我目前正在开发一个浏览器扩展,它可以在 Chrome 和 Opera 上按预期工作,但我在使用 Firefox 时遇到了问题。这是 manifest.json
的最小版本需要重现问题:
{
"name": "Example",
"version": "0.0.1",
"author": "Pyves",
"content_scripts": [
{
"all_frames": true,
"matches": [
"<all_urls>"
],
"js": [
"content.js"
]
}
],
"manifest_version": 2
}
content.js
:
console.log("Content script loaded");
Content script loaded
使用 Chrome 和 Opera 时,无论访问的页面如何,都会系统地记录。然而,在使用 Firefox 时,内容脚本似乎无法加载到某些页面中,例如原始 GitHub 页面,如下所示:
最佳答案
我终于弄清楚为什么在使用 Firefox 时扩展的内容脚本没有加载到某些页面中。
使用网络开发者工具分析请求后,发现在获取 GitHub 原始页面时返回以下 header :
Content-Security-Policy: default-src 'none'; style-src 'unsafe-inline'; sandbox
sandbox
CSP 指令具有以下作用:
enables a sandbox for the requested resource [...]. It applies restrictions to a page's actions including preventing popups, preventing the execution of plugins and scripts, and enforcing a same-origin policy.
CSP 'sandbox' directive prevents content scripts from matching, due to unique origin
关于Firefox 内容脚本未在某些页面中加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47622435/
我是一名优秀的程序员,十分优秀!