我让我的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...
不安全。
我是否需要将代码移到页面顶部,否则会产生不同的影响?
答案 0 :(得分:0)
需要在服务器端完成浏览器不要抛出不安全的连接警告。包含负责代码的文件为/library/core/functions.render.php
,您可以看到here。
$PhotoURL
是需要更改的变量。使用以下内容可确保所有图像都通过https:
协议加载:str_replace('http://', 'https://', $PhotoURL)
。
我通常不介意小型软件的全球范围,但在像Vanilla这样大的东西上,就像在大海捞针一样。
我无法找到任何其他针对香草的修复方案,所以我希望这有助于人们。