Javascript 使用Greasemonkey来避免;“加载混合内容”;Firefox中的警告

Javascript 使用Greasemonkey来避免;“加载混合内容”;Firefox中的警告,javascript,firefox,https,greasemonkey,stackexchange,Javascript,Firefox,Https,Greasemonkey,Stackexchange,有:即使使用HTTPS浏览堆栈溢出,所有自定义化身都是通过HTTP获取的(尽管它们也可以通过HTTPS获取)。 这个问题以重复的形式结束,在最近的将来可能不会有任何行动,所以我想用Greasemonkey解决这个问题 我能够用以下脚本替换图像的所有URL: var links = document.evaluate("//img[contains(@src, 'http://i.stack.imgur.com')]", document, null, XPathResult.UNORDERED_

有:即使使用HTTPS浏览堆栈溢出,所有自定义化身都是通过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/");
} 
var links=document.evaluate(//img[contains(@src,'http://i.stack.imgur.com“)]”,文档,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);
对于(var i=0;i
源URL被替换,但正如我在Firebug控制台中看到的那样,Firefox首先通过HTTP获取它,然后通过HTTPS再次获取它们(并正确地显示警告
在安全页面上加载混合(不安全)显示内容”http://i.stack.imgur.com/tKsDb.png“


我的问题。在Firefox获取页面(指向图像的URL)之前,是否可以使用Greasemonkey更改页面?Firefox将获取它们?

文档。写入(“”)并重新分析onload(),但这很残忍。可能吗?大概如果您的LAN路由器没有此功能,最好使用一个本地重定向工具。粗糙的黑客是使用AdBlock来阻止不需要的图像,使用Greasemonkey来添加HTTPS等价物。谢谢@Brock,我想到了本地代理,但是使用AdBlock的想法更有趣,更容易实现。你可以尝试将//@run at document start放在你的标题中,并继续循环,直到文档完全加载。我不确定你能否在链接开始加载之前更改它们。Metadate
@run at document start
在文档开始加载之前运行用户脚本。您可以尝试在插入后立即使用
MutationObserver
或DOM mutation事件操纵
src