通过Google Chrome扩展程序中的ContentScript在iFrame中注入JS文件

时间:2016-04-26 09:56:36

标签: javascript iframe google-chrome-extension

我正在构建一个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,但它是主/父网页的文档。

希望我在这里清楚我的问题。

有人可以帮忙吗?

如果需要更多信息,请与我们联系。

1 个答案:

答案 0 :(得分:0)

您应该直接使用script.js而不是chrome-extension前缀。