为了账号安全,请及时绑定邮箱和手机立即绑定

检测URL中的后退按钮/哈希值更改

检测URL中的后退按钮/哈希值更改

千巷猫影 2019-08-12 16:02:45
检测URL中的后退按钮/哈希值更改我刚在http://ritter.vg上设置了我的新主页。我正在使用jQuery,但非常简单。它使用AJAX加载所有页面 - 我将其设置为通过检测URL中的哈希来允许书签。 //general functions  function getUrl(u) {       return u + '.html';  }  function loadURL(u)    {       $.get(getUrl(u), function(r){                 $('#main').html(r);            }       );  }  //allows bookmarking  var hash = new String(document.location).indexOf("#");  if(hash > 0)  {       page = new String(document.location).substring(hash + 1);       if(page.length > 1)         loadURL(page);       else         loadURL('news');  }  else       loadURL('news');但我不能让后退和前进按钮工作。有没有办法检测何时按下后退按钮(或检测哈希值何时更改)而不使用setInterval循环?当我尝试使用.2和1秒超时时,它固定了我的CPU。
查看完整描述

3 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

请改用jQuery hashchange事件插件。关于你的完整ajax导航,尝试有SEO友好ajax。否则,您的页面在具有JavaScript限制的浏览器中不显示任


查看完整回答
反对 回复 2019-08-12
?
缥缈止盈

TA贡献2041条经验 获得超4个赞

这里的答案都很古老。

在HTML5世界中,您应该使用onpopstate事件。

window.onpopstate = function(event){
    alert("location: " + document.location + ", state: " + JSON.stringify(event.state));};

要么:

window.addEventListener('popstate', function(event){
    alert("location: " + document.location + ", state: " + JSON.stringify(event.state));});

后一个片段允许存在多个事件处理程序,而前者将替换任何可能导致难以发现的错误的现有处理程序。


查看完整回答
反对 回复 2019-08-12
  • 3 回答
  • 0 关注
  • 450 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信