【问题标题】:how to do a relative path redirection using javascript?如何使用javascript进行相对路径重定向?
【发布时间】:2011-11-06 17:07:45
【问题描述】:

我正在一个基于 php 的站点中处理 javascript/jquery,我必须根据页面中的事件重定向页面。

可以说,在单击"page1.php" 中的“单击我”按钮时,页面应重定向到“page2.php”。此重定向必须使用 javascript/jquery 完成。两个页面在同一个文件夹中,重定向代码应该使用'RELATIVE LINKS'

现在,如果我将绝对链接提供给page2.php,我可以重定向,但有人可以告诉我如何使用相对链接做同样的事情吗?

类似:

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

谢谢。

【问题讨论】:

  • 为什么不直接使用超链接,必要时用脚本设置href
  • 您的“类似”建议应该有效。
  • 哎呀..这确实有效。由于重定向在我的代码中不起作用而导致的错误实际上是由于其他一些代码行造成的。这一行 - window.location.href = "whateverpage.php" 有效,它是相对路径。所以我相信重定向就是这么简单,无论是绝对的还是相对的。谢谢!
  • 请将错误堆栈或您自己的答案标记为正确
  • @kritzikratzi - 是的,我尝试将适当的 on 标记为答案,但 StackOverflow 要求我等待 2 天才能做到这一点。可能是网站应该考虑修改的东西,因为作者应该有权随时标记“已回答”。

标签: javascript jquery


【解决方案1】:
window.location.href = "page2.php";

这行得通。事实上,相对和绝对的工作方式相同:

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

【讨论】:

    【解决方案2】:

    你可以做一个相对重定向:

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

    document.location.href = '/path'; //relative to domain
    

    或者在 jquery 中...

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

    【讨论】:

      【解决方案3】:

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

      看看window.location上的MDN docs

      【讨论】:

      • 如果你在,比如example.com/index.html,那么window.location.pathname将是/index.html
      • @unclenorton,我不确定你在说什么。
      • 我的意思是,如果路径中有文件名,如 index.html 或 index.php 或其他任何内容,它将进入window.location.pathname。例如,转到 jigsaw.w3.org/css-validator/documentation.html 并在 javascript 控制台中输入 check window.location.pathname
      • 是的,因为这是您当前所在的路径。它包含文件名是有效的。
      【解决方案4】:

      如果我理解,如果你在http://example.com/path/to/page1.php,并且你点击“page2.php”,你想被重定向到http://example.com/path/to/page2.php

      也许有一个更聪明的解决方案,但它可以解决您的问题吗?

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

      使用示例:relativeRedir("page1.php");

      【讨论】:

      • 我认为这是唯一的多浏览器解决方案。 document.location.href 在 IE 和 Chrome 中可以工作,但在 FF 中不工作。
      • 如果有人还在读这篇文章,那是因为它应该是window.location.href
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-19
      • 2012-08-09
      • 1970-01-01
      • 2012-03-24
      相关资源
      最近更新 更多