使用 JavaScript 修改混合内容 HTML

Modify Mixed-Content HTMLs using JavaScript

起初我的网站上没有任何 SSL 证书,因为托管服务提供商不允许。

因此,我已将我的域转移到 CloudFlare,并为我的站点获取了 SSL 证书。

对于 SSL 证书,站点中的内容应该像 <img src="**https**://www.example.com/image.png(而不是 <img src="http://www.example.com/image.png">),否则它会显示有关混合内容的问题。

所以,按照规则,我做了同样的事情。但是在底部放置了一些第三方广告,这些广告归托管服务提供商所有,其中包含 http:// 连接。因此,我在浏览器中遇到了不受信任的证书错误。

托管服务提供商不允许通过付费或其他方式编辑或删除这些项目。

但是 CloudFlare 已经有一个系统可以自动将所有 <script src="http://www.example.com/script.js"></script> 更改为 <script src="https://www.example.com/script.js"></script>。但我的问题是,它无法将 <img src="http://www.example.com/image.png"> 更改为 <img src="https://www.example.com/image.png">.

是否可以使用JavaScript将<img src="http://www.example.com/image.png">修改为<img src="https://www.example.com/image.png">?如果我使用 JavaScript 会解决吗??

尝试在文档 HTML 上使用 String.replace。

编辑:经过更多研究,您可能想尝试使用:

<meta http-equiv="Content-Security-Policy" content="upgrade-insecure-requests">

而不是 JavaScript 解决方案

document.documentElement.innerHTML = document.documentElement.innerHTML.replace("http://", "https://");
console.log(document.documentElement.innerHTML);
<html>
<head></head>
<body>
</body>
</html>
<img src="http://somethingsomething">