javascript - 针对 iframe 的内容脚本不会在特定网站上触发
问题描述
背景
我正在创建一个扩展,它应该在每一帧中执行内容脚本。扩展由两个文件组成:
清单.json
{
"manifest_version": 2,
"name": "Test",
"version": "1.0",
"permissions": ["<all_urls>"],
"content_scripts": [{
"matches": ["<all_urls>"],
"js": ["content.js"],
"all_frames": true,
"match_about_blank": true,
"run_at": "document_start"
}]
}
内容.js
console.log('content script loaded')
简而言之,每次框架开始加载其contentDocument时,都会加载内容脚本,然后记录一条消息。另外,如果您手动插入一个空白框,如下所示,内容脚本也会被触发。
var frame = document.createElement('iframe')
document.body.appendChild(frame)
问题
我已经在几个网站上对其进行了测试,例如https://www.google.com,一切都按预期工作。但是,我发现如果我通过上面提到的方法在https://www.twitch.tv上手动插入空白帧,由于某种原因不会触发内容脚本。似乎来自网站的脚本能够拦截操作并以独特的方式将框架附加到 DOM 而不会触发我的内容脚本。
我试图跟踪代码,但仍然不知道普通脚本如何做到这一点。任何人都可以帮忙吗?
我的平台
- 操作系统:Windows 7
- 铬:76.0.3809.132
解决方案
推荐阅读
- html - CSS:如何仅对锚标签应用滚动对齐对齐?
- c++ - GLEW 链接错误:未定义对符号“XConvertSelection”的引用
- react-native - 如何使指示器覆盖选项卡而不是相反
- excel - 如何在Excel VBA中的同一位置组合来自2个数组的条目
- linux - Bash:在列中查找重复项,根据另一列的比较删除行
- typescript - Nuxt - asyncData 错误:“绑定元素 '$axios' 隐式具有 'any' 类型。”
- visual-studio-code - 如何使用 VS Code 为 Windows 做出本机反应?
- c++ - 首次尝试使用 CMake 编译 Open-CV 时出错
- reactjs - 我使用 fetchAPI 和 useState 收到此错误“TypeError:userData.map 不是函数”
- javascript - JavaScript 检查迭代器是否包含值