【问题标题】:How to redirect from "page.php" to "#page.php" with Javascript or jQuery?如何使用 Javascript 或 jQuery 从“page.php”重定向到“#page.php”?
【发布时间】:2011-09-18 22:31:34
【问题描述】:

我的页面在 php 上运行,没有 js 用户。对于使用 javascript 的用户,我结合 hashchangeevent 从索引加载所有动态内容。所以链接看起来都像www.page.com/#page.php,前面有一个#。如果用户以这种方式键入它,那么每件事都像魅力一样工作,并且内容正在通过 index.php 加载

但是,如果用户输入 www.page.com/page.php,页面当然会在 php 页面上结束,动态页面当然不会再工作,除非用户会点击索引页面并继续从中导航。所以这不是一个很酷的方法。

我的问题:

如何重定向用户:

www.page.com/page.php

www.page.com/#page.php

当他们在浏览器中输入 www.page.com/page.php 时

当然只有 javascript。该页面应该可以在没有 javascript 的情况下正常使用 php。

谢谢。

【问题讨论】:

  • 如果启用了 JavaScript 的人想要与未启用 JavaScript 的朋友共享他们所在的页面怎么办?

标签: javascript jquery redirect


【解决方案1】:

当页面加载时,通过解构和重组 URI 将 window.location 更改为所需的 URL。不幸的是,您必须在希望进行重定向的每个页面(即page.php)上都包含此内容。

$(document).ready(function () {
    // Insert the pathname after the hash, but skip the leading '`'
    window.location = "/#" + document.location.pathname.slice(1);
});

它稍微不干净,但您也可以从.ready() 中完全删除window.location 位。这会影响性能的小幅提升。

如果您希望哈希重定向仅影响当前路径的最后一个元素,请改用下面的代码。

window.location = "./#" + document.location.pathname.split('/').pop();

【讨论】:

  • 非常酷!谢谢!但是,如果我的 URL 更长,f.e. www.page.com/folder/page.php - 甚至更多文件夹。我必须改变什么?因为现在这会将 # 移动到 www.page.de/#folder/page.php。
  • 没什么。 Location.pathname 属性捕获域名之后和查询字符串之前的所有内容。
  • 我不确定我是否理解您的问题,但请查看我修改后的答案,因为它可能有解决方案。
  • 完美!!这正是我所需要的!非常感谢!!
猜你喜欢
  • 1970-01-01
  • 2015-10-25
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多