【问题标题】:Set window.location.protocol in different browsers在不同的浏览器中设置 window.location.protocol
【发布时间】:2016-03-17 02:02:10
【问题描述】:

我尝试切换协议并通过

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

我使用带有冒号的https: 而不是http,因为当我在控制台中输入window.location.protocol 时,它会打印带有冒号。

但现在我发现上面的代码在 Firefox 40 上不起作用,我被告知要删除冒号。而且我发现下面的代码有更好的兼容性,可以在chrome和ff上运行,甚至是之前不能运行的FF40。

 window.location.protocol = 'https';

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

我的问题是:是FF40的bug,还是我的第二行代码是切换协议的标准方式?

【问题讨论】:

    标签: javascript google-chrome firefox cross-browser


    【解决方案1】:

    window.location.protocol 不可写,只能读,这意味着你不能更改值。

    【讨论】:

      【解决方案2】:

      您可以通过测试浏览器如何返回当前 URL 的协议来动态实现:

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

      【讨论】:

        猜你喜欢
        • 2016-04-28
        • 2014-08-10
        • 2012-01-22
        • 2023-04-09
        • 2015-03-30
        • 1970-01-01
        • 2013-01-16
        • 2013-06-09
        • 1970-01-01
        相关资源
        最近更新 更多