使用 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">
起初我的网站上没有任何 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">