我正在尝试通过以下基本命令实现看似非常简单的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
原因,那不是我想要的。有没有办法强制重定向?
答案 0 :(得分:8)
一种方法是使用协议相对网址:
window.location = "//www.somesite.com";
或者
window.location = "//somesite.com";
这样,它会重定向,浏览器本身将负责计算协议部分,例如http
或https
答案 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")