如何使用javascript进行相对路径重定向?

如何使用javascript进行相对路径重定向?,javascript,jquery,Javascript,Jquery,我正在一个基于php的站点上处理javascript/jquery,我必须在页面中发生事件时重定向页面 比方说,单击“page1.php”中的“click me”(单击我)按钮时,页面应重定向到“page2.php”。此重定向必须使用javascript/jquery完成。两个页面位于同一文件夹中,重定向代码应使用“相对链接” 现在,如果我提供指向page2.php的绝对链接,我可以重定向,但是有人能告诉我如何使用相对链接进行重定向吗 比如: window.location.href = 'pa

我正在一个基于php的站点上处理javascript/jquery,我必须在页面中发生事件时重定向页面

比方说,单击
“page1.php”
中的“click me”(单击我)按钮时,页面应重定向到“
page2.php
”。此重定向必须使用javascript/jquery完成。两个页面位于同一文件夹中,重定向代码应使用“相对链接”

现在,如果我提供指向
page2.php
的绝对链接,我可以重定向,但是有人能告诉我如何使用相对链接进行重定向吗

比如:

window.location.href = 'page2.php';

谢谢。

您可以执行相对重定向:

document.location.href = '../'; //one level up

或者在jquery中

 var url = "http://stackoverflow.com";    
$(location).attr('href',url);

要设置相对路径,请使用
window.location.pathname

请看以下内容:

这起作用了。事实、相对和绝对的作用方式相同:

window.location.href = "http://www.google.com";
// or
window.location.href = "page2.html";

如果我理解,如果你在,你点击“page2.php”,你想被重定向到

也许有一个更聪明的解决方案,但它能解决你的问题吗

function relativeRedir(redir){
  location.pathname = location.pathname.replace(/(.*)\/[^/]*/, "$1/"+redir);
}

使用示例:relativeRedir(“page1.php”)

如果有必要,为什么不直接使用超链接,用脚本设置
href
?你的“类似”建议应该会奏效。哦。。这确实有效。重定向在我的代码中不起作用的错误实际上是由其他代码行引起的。这一行-window.location.href=“whateverpage.php”起作用,它是相对路径。所以我相信重定向就是这么简单,不管是绝对的还是相对的。谢谢请将您的答案或您自己的答案标记为correct@kritzikratzi-是的,我尝试将适当的标记作为答案,但StackOverflow需要我等待大约2天才能完成。可能是网站应该考虑的事情,因为作者应该有特权在他想要的时候标记“回答”。如果你在,那么,“代码>窗口。位置。路径名将是代码> /索引。HTML < /代码> @ unCulton,我不确定你在说什么。我的意思是,如果路径中有文件名,比如索引x.html或index x.php,或者,它将进入
window.location.pathname
。例如,转到并在javascript控制台中键入check
window.location.pathname
。是的,因为这是您当前所在的路径。它包含文件名是有效的。我认为这是唯一的多浏览器解决方案
document.location.href
在IE和Chrome中有效,但在FF中无效。
window.location.href = "http://www.google.com";
// or
window.location.href = "page2.html";
function relativeRedir(redir){
  location.pathname = location.pathname.replace(/(.*)\/[^/]*/, "$1/"+redir);
}