强制Javascript重定向

时间:2012-07-05 06:56:48

标签: javascript

我正在尝试通过以下基本命令实现看似非常简单的JavaScript重定向:

window.location.href = "http://www.somesite.com";

到目前为止一切顺利,它确实有效。我也可以通过以下方法来实现:

location.replace("http://www.somesite.com");

这里没问题,再次有效!当我从字符串中删除协议时出现问题:

window.location.href = "www.somesite.com";

OR:

location.replace("www.somesite.com");

它只是将新位置附加到当前网址:

www.currentsite.com/www.somesite.com

原因,那不是我想要的。有没有办法强制重定向?

3 个答案:

答案 0 :(得分:8)

一种方法是使用协议相对网址:

window.location = "//www.somesite.com";

或者

window.location = "//somesite.com";

这样,它会重定向,浏览器本身将负责计算协议部分,例如httphttps

Working Example

答案 1 :(得分:1)

该协议是必需的。

浏览器如何知道是否

location.replace("mysite.pl");

是在当前网站上访问波兰网站还是Perl脚本?

答案 2 :(得分:1)

你可以做这样的事情来将http://添加到URL中,如果它还没有...但是我想不出不仅仅是自己包含它的原因。为什么复杂的事情?

​function redirect(url) {
    if(url.substr(4) != "http")
        url = "http://" + url;
    window.location.href = url;
}
redirect("www.google.com")