我正在构建一个chrome扩展程序,我通过内容脚本文件在网页的所有iFrame中注入我的script.js
文件。循环遍历网页中的所有iFrame,并在script.js file
部分中注入head
。
我的内容脚本文件包含以下代码:
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
只需在div
中插入body
元素即可。因此,我期待所有iFrames的主体最终都会有这个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中。我在script.js文件中尝试调试这个,当我查询文档时,它返回父/主html而不是iFrame的文档。我不明白我的script.js
文件何时被执行,其上下文应该是iframe,但它是主/父网页的文档。
希望我在这里清楚我的问题。
有人可以帮忙吗?
如果需要更多信息,请与我们联系。
答案 0 :(得分:0)
您应该直接使用script.js
而不是chrome-extension
前缀。