0

在我的扩展中,我试图将<img>DOM 中标签的 URL 修改为https://...我已将run_at属性设置为document_end,但与 Chrome 文档不同,它在页面子资源(图像)显示后修改 DOM(图像显示一小段时间(但很烦人),然后消失,因为这些图像不支持 https)。我期待,如果图像不支持 https,它们即使在短时间内也不应该显示。代码如下。

清单.json:

...

"content_scripts": [    
        {
            "matches": [
                "http://*/*",
                "https://*/*"
            ],
            "js": ["content.js"],
            "all_frames": true,
            "run_at": "document_end"
        }
    ],
...

内容.js:

images = document.getElementsByTagName("img");
for (var i = 0; i < images.length; i++)
        if (images[i].src.indexOf("http://") === 0)
                images[i].src = images[i].src.replace("http://", "https://");
4

1 回答 1

1

我怀疑这是因为您的脚本是异步执行的。Chrome 只保证 DOM 为document_end内容脚本做好了准备。也许您可以注入 css 以document_start使所有图像在处理之前都不可见

于 2013-09-19T12:10:12.480 回答