HTML/JavaScript - 远程 img src 自动添加 http/https 前缀

12

显示来自远程服务器的图片:

<img src="http://remotehost/path/to/a.png" alt="Image A" />

然而,如果当前页面通过HTTPS访问,则通过未加密的HTTP链接图像将产生安全警告。虽然我可以无论当前协议如何都指定https://,但这样做是浪费的,因为除非必要(当访问者使用HTTPS时),我真的不关心安全传输这个图像。

是否可能指定一个URL作为img标记的src属性,以使URL中的协议根据访问当前页面所使用的协议动态选择?为了说明我的意思:

<img src="(JavaScript's window.location.protocol)//remotehost/path/to/a.png" alt="Image A" />

如果我们使用JavaScript会怎样呢?我们可以给img标签一个ID,这样我们就可以定位它,并将src设置为以window.location.protocol开头。

也可以使用base64来完全绕过HTTP/HTTPS问题,但这对我所做的事情不是理想的解决方案。

你们有什么建议?

2个回答

23

只需执行:

<img src="//remotehost/path/to/a.png" alt="Image A" />

3
稍作解释一下。Paul Irish写了一篇很好的文章(http://paulirish.com/2010/the-protocol-relative-url/)讲述了这个问题。 - Matijs
非常有帮助的答案。 - Ananda G

-2
如果文件在局域网上,您需要使用 file:// 协议,在路径前添加 5 条斜杠。例如,我的服务器名称是 athensserver,那么路径应该是 f://///athensserver/(任何你想共享的文件夹)。
file://///athensserver/athens/0/e1.png"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接