2017-02-13 95 views
0

该脚本从组合框中获取选择,并使用所选值重定向到特定路径并打开选定的网页。可变路径不工作的Window.location

function redirect(){ 
var obj = document.getElementById("cat"); // 
var obj2= document.getElementById("sub1"); 
var obj3= document.getElementById("sub2"); 
var redir2=obj2.options[obj2.selectedIndex].text.substring(0,4); 
var redir =obj.options[obj.selectedIndex].text.substring(0,4); // 
var redir3 =obj3.options[obj3.selectedIndex].text.replace(/ /g,"_");  

var url= redir+"/"+redir2+"/"+redir3+".php"; 
url=url.toLowerCase(); 

alert(url); 

window.location.href = "np/categories/"+url;} 

由于某些特殊原因,在监视firefox上的日志时,它有时会运行路径,有时它不会。

无论哪种方式,它从不加载选择的页面。 (测试路径和页面都存在)。有时候我在Mozilla网络控制台状态绿灯,这样

GET http://localhost/np/cat/auto/serv/testingpage.php [HTTP/1.1 200 OK 0毫秒]

它从来没有真正加载页面。 我该如何解决这个问题?

+0

究竟会be'url'看起来像? – brk

+0

添加一些输入样本 – iceDragon

+0

redirect()函数应该在某个事件中调用。 –

回答

0

您可能有不同的相对路径,它可能无法正常工作。 window.location.origin为您提供完整的原始路径,例如当前页面:“http://stackoverflow.com”。

那么试试这个:

window.location.href = window.location.origin + "/np/categories/" + url; 
+0

我和这个解决方案的结果完全一样。 甚至尝试使用window.location.pathname =“....”得到相同的结果。 –

+0

在浏览器控制台运行该命令并向我提供结果。 – AHBagheri

+0

刚刚试过这个“window.open(”/ np/categories /“+ url);”它运行在它应该,它是,它打开一个新的标签...但我想加载新的网页上相同的页面...所以我想这个问题不是路径,(路径很好(运行window.open时检查) –

0

这是不能够找到基本路径

试试这个

window.location.href = window.location.origin + "/np/categories/"+url; 
+0

我和这个解决方案的结果完全一样。 甚至尝试使用window.location.pathname =“....”得到相同的结果。 –