【发布时间】:2014-12-31 15:58:46
【问题描述】:
我让我的 VanillaForums 论坛上的用户选择是否使用https 协议,我想测试是否可以使用 jQuery 在客户端更改图像源。
我希望此代码将图像源链接中的协议更改为// 而不是http:// 并在图像加载之前加载,所以我使用了.ready():
$(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);
});
}
});
虽然它确实可以更改图像源,但 URL 栏仍然显示:
并且控制台会给出http://someimageurl... 不安全的警告。
我是否需要将代码移到页面顶部,否则不会产生影响?
【问题讨论】:
-
它会在
ready触发之前开始加载图像吗?无论使用何种协议,您都可以进行替换,那么为什么不在服务器端进行呢? -
如果您不想要警告,您需要在服务器上进行修改。浏览器看到网址后为时已晚
-
谢谢查理,我认为这可能是问题所在。
标签: javascript jquery ssl