在 iFrame 中注入 JS 文件,通过 Google chrome 扩展名中的 ContentScript 进行
Injecting JS file in iFrame via ContentScript in Google chrome extension
我正在构建一个chrome扩展,通过内容脚本文件将我的script.js
文件注入网页的所有iFrame中。循环浏览网页中的所有iFrame,并在head
部分中注入我的script.js file
。
我的内容脚本文件包含以下代码:
var $iframe = $('#iframe');
$iframe.ready(function() {
$iframe.contents().find("head")
.append("<script src='chrome://ext3241241234/script.js'/>");
});
我的script.js
文件包含以下代码:
var html = "<div id='cksBox'></div>"
$('body').append(html);
script.js
只需在body
中插入一个div
元素即可。因此,我希望所有 iFrame 的主体最终都会有这个div 元素。
但这并没有发生。取而代之的是,我的主/父body
元素有这个div 元素,而不是在 iFrame 正文中。假设以下是加载我的chrome扩展程序的网页:
<html>
<body>
<div id='cksBox'></div>
<iframe>
<html>
<head>
<script src='chrome://ext3241241234/script.js'/>
</head>
<body/>
</html>
<iframe>
</body>
我可以看到我的script.js
文件已加载到 iFrame 中。我尝试在脚本.js文件中调试这个,当我查询文档时,它返回父/主 html 的文档而不是 iFrame 的文档。我不明白当我的script.js
文件被执行时,它的上下文应该是iframe,但它是主/父网页的文档。
希望我在这里清楚我的问题。
有人可以帮忙吗?
如果需要更多信息,请告诉我。
您应该直接使用script.js
而不是chrome-extension
前缀。
相关文章:
- 未捕获的类型错误:无法读取属性'addEventListener'的null chrome扩展名
- 从Chrome扩展名中的popup.html文件在background.js文件中运行一个函数
- 保存输入字段Chrome扩展名
- 如何通过chrome扩展名获取所有CSS和Javascript文件
- 在 iFrame 中注入 JS 文件,通过 Google chrome 扩展名中的 ContentScript 进行
- 如何从chrome扩展名读取文件
- chrome扩展名“sendResponse”不起作用
- 是否可以使用chrome扩展名与非活动选项卡中的内容元素进行交互
- 创建/下载一个带有chrome扩展名的excel文件
- 创建/下载一个带有chrome扩展名的.html文件
- 如何在Chrome扩展名的内容JS文件中包含其他JavaScript文件
- 未捕获的引用错误:即使在加载 JS 后,在 chrome 扩展名中也没有定义 HTMLInspector
- 如何使用chrome扩展名修改页面上的所有链接
- 从内容脚本重定向到chrome扩展名网址
- 删除文件时无法检测到 chrome 扩展名中的删除事件
- U2F支持,没有U2F Chrome扩展名
- jQuery在chrome扩展名中是未定义的
- 将文件从本地存储上传到具有 Chrome 扩展名的服务器
- chrome 扩展名中的 XMLHttpRequest .
- 有没有办法使用 .cshtml 文件作为 chrome 扩展名中的弹出窗口