页面上的一些网址仍然是http,我们无法在服务器端获得正确的信息。是否有一些javascript代码用http:// to //或https://?
重写所有网址编辑:
通过T.J.的anwser进行测试克劳德我得到了所有的" a href"被替换。
然而,我有很多不同的地方有图片网址:
<header class="category_header init_bg_mobile" data-bg="//test.jpg" data-bg-md="http://test2.jpg" data-bg-xs-2x="http://test.jpg" >
所以我混合了他的anwser和This anwser。
<script>
(function(){
Array.prototype.forEach.call(
document.body.innerHTML = document.body.innerHTML.replace('http://', '//');
)();
</script>
这就是现在的诀窍。
旁注,我不认为这是一种很好的做法,因为它改变了每一个地方&#34; http://&#34;在页面上,如果在文本中有意图,也可以重写它。然而它现在就成功了。
答案 0 :(得分:2)
如您所知,正确的解决方法是修复服务器端的这些链接,理想情况是完全删除该方案,以创建 scheme-relative 这样的URL:
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
但是你说你不能这样做。
所以:
a
轻松找到所有document.querySelectorAll
元素。href
获取getAttribute
(或通过href
属性解析后的网址)setAttribute
或href
属性)进行更新。script
和link rel="stylesheet"
。以下是链接的简单示例:
Array.prototype.forEach.call(
document.querySelectorAll("a[href]"),
function(link) {
if (link.href.startsWith("http://")) {
link.href = "https://" + link.href.substring(7);
}
}
);
确保在script
末尾的</body>
标记中,以便元素在运行时存在。
根据需要对img
(src
属性),script
(src
属性),link[rel=stylesheet]
(href
属性进行概括),...(每个都是一个有效的CSS选择器,可与querySelectorAll
一起使用。)