在不同的浏览器中设置window.location.protocol

时间:2015-12-11 08:09:16

标签: javascript google-chrome firefox cross-browser

我尝试切换协议并通过

重新加载页面
 window.location.protocol = 'https:';

我使用冒号代替https: http,因为当我在控制台中键入window.location.protocol时,它会以冒号打印。

但是现在我发现上面的代码不适用于Firefox 40,我被告知要删除冒号。我发现下面的代码具有更好的兼容性,它适用于chrome和ff,甚至FF40以前都无法正常工作。

 window.location.protocol = 'https';

老实说,当你设置一个值为https的属性时,你会得到一个https:,这真的很奇怪。

我的问题是:它是FF40的错误,还是我的第二行代码是切换协议的标准方法?

2 个答案:

答案 0 :(得分:1)

window.location.protocol不可写,只能读取,这意味着您无法更改该值。

答案 1 :(得分:0)

你可以通过测试浏览器如何返回当前URL的协议来动态地制作它:

if(location.protocol.slice(-1)==":")
{ 
  window.location.protocol = 'https:'
  }
else
{  
  window.location.protocol = 'https'

}