当前位置: 首页 > 面试题库 >

从网址中删除哈希

归俊杰
2023-03-14
问题内容

我要在我的一个项目中对分页进行ajax化,并且由于我希望用户能够为当前页面添加书签,因此我通过哈希附加页面编号,例如:

onclick="callPage(2); window.location.hash='p=2'; return false;"

并且多数民众赞成在hyperlink它工作正常,一切,除了,当页码为1时,我不想URL成为/products#p=1,我只是希望它成为/products

我尝试了以下变体:

  1. window.location.hash=''的作品,但网址现在就像/products#,我不很哈希那里。
  2. 根本不使用window.location.hash,但是当用户从第3页回到第1页时,他位于第1页,但是url仍然是/products#p=3因为我没有弄乱哈希。
  3. 对此的Google搜索使我进入了几分钟(大约15个)的愚蠢论坛,在该论坛上提出了正确的问题,但答案表明该页面跳了,因为线程创建者在href中有一个像hash一样的哈希<a href="#">,他应该javascript:void(0)改用它。(他们是否从未听说过Ajax?)

所以最后,我决定创建此线程,在这里找到了几个类似的线程,但是所有答案都与第二点非常相似。

所以我的大问题仍然是一个问题:如何将哈希从URL踢出,甚至从宇宙中踢出去?(仅用于首页!)


问题答案:

更新的答案

达到此目的的最佳方法是遵循Homero Barbosa的以下回答:

history.pushState("", document.title, window.location.pathname);

…,或者,如果您想维护搜索参数:

history.pushState("", document.title, window.location.pathname + window.location.search);

原始答案,不要使用这个,badwrongfun

var loc = window.location.href,
    index = loc.indexOf('#');

if (index > 0) {
  window.location = loc.substring(0, index);
}

…但这为您刷新了页面,刚到达那里似乎有点不礼貌。咧着嘴笑,似乎是最好的选择。



 类似资料:
  • 问题内容: 我正在尝试从Angular 2中的网址中删除#号,但找不到如何在不产生任何问题的情况下删除它的任何好的解释。 我记得在AngularJS 1上添加起来比较容易 如果您能告诉我这是否是一种好的做法(删除#)或可能会影响应用程序的SEO(或对其进行改进),我也将不胜感激。 PS:我正在将Angular 2与打字稿一起使用 问题答案: 正如@Volodymyr Bilyachat指出的那样,

  • 问题内容: 我要在我的一个项目中对分页进行ajax化,并且由于我希望用户能够为当前页面添加书签,因此我通过哈希附加页面编号,例如: 多数民众赞成在它工作正常,一切,除了,当页码为1,我不想成为,我只是希望它成为 我尝试了以下变体: 的作品,但网址现在就像,我不很哈希那里。 根本不使用window.location.hash,但是当用户从第3页回到第1页时,他位于第1页,但是url仍然是因为我没有弄

  • 问题内容: 我正在使用scrapy抓取一个似乎在每个URL末尾向查询字符串添加随机值的网站。这将爬网变成一种无限循环。 我如何抓紧忽略URL的查询字符串部分? 问题答案: 示例代码: 输出示例:

  • 问题内容: 我知道这是一个非常受欢迎的问题,但是我一直无法找到适用于Laravel 5的解决方案。我已经尝试了很长时间从Codeigniter进行迁移,但是这种复杂的安装过程使我望而却步。 我不想运行虚拟机,在项目之间切换时这似乎很尴尬。 我不想将我的文档根目录设置为公用文件夹,这在项目之间切换时也很麻烦。 我已经尝试过.htaccess mod_rewrite方法 这只是在74.10行中给了我一

  • 问题内容: 从Java脚本的路径中删除查询字符串的简单方法是什么?我已经看到了使用window.location.search的Jquery插件。我不能这样做:在我的情况下,URL是从AJAX设置的变量。 问题答案: 一个简单的方法是: 对于那些还希望 在不存在querystring的情况* 下 删除哈希 (不是原始问题的一部分)的人,需要做更多的工作: * 编辑 @caub(最初为@crl)建议

  • 问题内容: 我想要任何类似的请求,将301重定向到。 我尝试添加: 问题在于,此重写操作是在根URL上运行的,这将导致无限重定向循环。 编辑: 我需要一个一般的解决方案 应该提供文件 ,应该将301重定向到 应该301重定向到 应该在以下位置提供index.php脚本 基本上,我永远不想在地址栏中显示“ index.php”。我有旧的反向链接,我需要将其重定向到规范网址。 问题答案: 很好的问题,