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

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

景信瑞
2023-03-14
问题内容

我只是在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。


问题答案:

请改用jQuery hashchange事件插件。关于完整的Ajax导航,请尝试使用SEO友好的Ajax。否则,您的网页在具有JavaScript限制的浏览器中什么也不会显示。



 类似资料:
  • 问题内容: 如何检查JavaScript中的URL是否已更改?例如,使用AJAX的GitHub之类的网站将在#符号后附加页面信息以创建唯一URL,而无需重新加载页面。检测此URL是否更改的最佳方法是什么? 是否再次调用该事件? URL是否有事件处理程序? 还是必须每秒检查一次URL以检测更改? 问题答案: 在现代浏览器(IE8 +,FF3.6 +,Chrome)中,您只能在上收听事件。 在某些旧的

  • 我正在编写一个使用ChessClock类的游戏应用程序。这两个运动员每人都有一个钟。时钟每十分之一秒向自己发送一个信息流,如果运行,则减少剩余时间。当时间到期时,时钟会调用父视图组中的一个方法,该方法会停止时钟并设置一个标志,该标志会导致忽略进一步的触摸事件,从而用户无法再移动工件。我正在用kotlin写作,但我认为java程序员也会明白这一点: 这可以正常工作,但是如果用户按下后退按钮然后开始一

  • 问题内容: 如何从php中的URL获取片段(哈希值“#”后的值)? 从我想说 问题答案: 如果要在用户浏览器中显示的哈希标记或锚点之后获取值:使用“标准” HTTP则无法实现,因为此值永远不会发送到服务器(因此该值在或类似版本中将不可用预定义变量)。您可能需要在客户端使用某种JavaScript魔术,例如,将该值包含为POST参数。

  • 在我的应用程序中,我使用动作栏和导航抽屉。操作栏中有一个按钮用于打开和关闭导航抽屉。我想把它的颜色改成红色。我该怎么做?

  • 问题内容: 我正在寻找一种将URL片段(#)中的值注入到bean(JSF)中的方法,就像注入查询参数值一样。我正在使用Ben Alman的可标记jQuery插件(http://benalman.com/projects/jquery-bbq- plugin/ )创建URL片段。我希望从prettyFaces获得的自定义正则表达式模式可以解决我的问题,但是直到现在我还是没有成功。 (http://o

  • 问题内容: 如果javascript修改了页面A中的DOM,则用户导航到页面B,然后单击返回按钮返回页面A。页面A对DOM的所有修改都将丢失,并且向用户显示最初从服务器检索到的版本。 它可以在stackoverflow,reddit和许多其他流行的网站上以这种方式工作。(尝试向该问题添加测试评论,然后导航至其他页面并单击“返回”按钮以返回- 您的评论将“消失”) 这很有意义,但是某些网站(appl