Javascript 使不安全的图像源成为安全的客户端

Javascript 使不安全的图像源成为安全的客户端,javascript,jquery,ssl,Javascript,Jquery,Ssl,我让我的VanillaForums论坛上的用户选择是否使用https协议,我想测试是否可以使用jQuery在客户端更改图像源 我希望此代码将图像源链接中的协议更改为//而不是http://并在加载图像之前加载,因此我使用了。就绪: 虽然它确实可以更改图像源,但URL栏仍显示以下内容: 控制台会发出警告http://someimageurl... 这是不安全的 是否需要将代码移到页面顶部,或者这不会产生任何影响?需要在服务器端执行此操作,以便浏览器不会抛出不安全连接警告。包含相关代码的文件是/li

我让我的VanillaForums论坛上的用户选择是否使用https协议,我想测试是否可以使用jQuery在客户端更改图像源

我希望此代码将图像源链接中的协议更改为//而不是http://并在加载图像之前加载,因此我使用了。就绪:

虽然它确实可以更改图像源,但URL栏仍显示以下内容:

控制台会发出警告http://someimageurl... 这是不安全的


是否需要将代码移到页面顶部,或者这不会产生任何影响?

需要在服务器端执行此操作,以便浏览器不会抛出不安全连接警告。包含相关代码的文件是/library/core/functions.render.php,您可以看到

$PhotoURL是需要更改的变量。使用以下命令可确保通过https加载所有图像:协议:str_replace'http://'、'https://'、$PhotoURL

我通常不介意小型软件的全球范围,但在像香草这样的大型软件中,这就像大海捞针一样


我找不到任何其他特别针对Vanilla的修复程序,所以我希望这对人们有所帮助。

它会在ready Fire之前开始加载图像吗?无论使用何种协议,您都可以进行替换,所以为什么不在服务器端进行替换呢?如果您不想看到警告,则需要在服务器端进行修改。在浏览器看到URL后已经太晚了。查理,我想这可能是问题所在。
$(document).ready(function () {
    if (window.location.protocol == "https:") {     
        var $imgs = $("img");
        $imgs.each(function () {
            var img_src = $(this).prop("src");
            if (img_src.indexOf("http://") < 0) return;
            var new_img_src = img_src.replace("http:", "");
            $(this).prop("src", new_img_src);
        });
    }
});