所有 Stack Exchange 站点都存在问题:即使使用 HTTPS 浏览 Stack Overflow,所有自定义头像也是通过 HTTP 获取的(尽管它们也可以通过 HTTPS 获得)。
该问题已作为重复而关闭,在最近的将来可能不会有任何行动,所以我想用 Greasemonkey 解决它。
我能够使用以下脚本替换图像的所有 URL:
var links = document.evaluate("//img[contains(@src, 'http://i.stack.imgur.com')]", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
for (var i=0; i < links.snapshotLength; i++)
{
var thisLink = links.snapshotItem(i);
hisLink.src = thisLink.src.replace("http://i.stack.imgur.com/", "https://i.stack.imgur.com/");
}
源 URL 被替换,但正如我在 Firebug 控制台中看到的那样,Firefox 首先通过 HTTP 获取它,然后通过 HTTPS 再次获取它们(并正确显示警告Loading mixed (insecure) display content on a secure page "http://i.stack.imgur.com/tKsDb.png"
)。
我的问题。是否可以在Firefox 获取页面之前使用 Greasemonkey 更改页面(图像的 URL) ?