字符串替换窗口位置

时间:2013-12-27 12:18:18

标签: javascript

我试图替换windows.location ex:

我的Windows位置是http://我需要在https中替换,此代码返回“未定义”值,为什么?

<script>
function myFunction()
{
var windost = window.location;
var opens = windost.replace("http","https");
alert(opens);
}
</script>

4 个答案:

答案 0 :(得分:3)

location不是字符串,因此其replace方法的行为方式与字符串上可用的replace方法不同。你想要location.href,这是一个字符串。

var windost = location.href;

答案 1 :(得分:1)

试试这会解决你的问题

<script>
    function myFunction()
    {
        var windost = window.location.toString();
        var opens = windost.replace("http", "https");
        alert(opens);
    }
</script>

答案 2 :(得分:0)

尝试这样的事情

function myFunction()
{
    var windost = window.location.href;
    var opens = windost.replace("http","https");
    alert(opens);
}

答案 3 :(得分:0)

使用toString()功能(或者更好地使用Quentin建议的href),并将其与if结合使用以避免更换错误。

<script>
    function myFunction()
    {       
        if (window.location.protocol == "http:") {
          var opens = window.location.href.replace("http://", "https://")
          alert(opens);    
        }      
    }
    myFunction()
</script>

<强>详细信息: 您的旧替换,即使已修复也会造成一些不良替换,例如:

  • 该位置已经以 https 开头(会产生类似httpss://link.com的内容)
  • URL中包含http字的位置

Here就是一个例子。