【问题标题】:Ajax back button with dynamic content具有动态内容的 Ajax 后退按钮
【发布时间】:2009-06-18 02:50:28
【问题描述】:

我使用 JQuery 和 Ajax 创建了一个页面,该页面可帮助用户筛选一系列选项,并最终显示符合其规范的经过筛选的产品列表。

这一切都很好。

我遇到的问题是 Ajax 的“后退按钮”问题,我知道如何使用静态内容上的锚点(即 Filter.php#Step2)来解决这个问题。

但是,该页面通过返回产品规格列表来工作,当单击规格链接时,Ajax 会再次应用链接参数加载相同的页面,最多重复六次,之后,用户被重定向到过滤后的产品 URL。

如果用户随后单击“返回”,那么过滤器页面当然会从第 1 步而不是最后一步(第 6 步)重新加载。

有谁知道这是否可能?

【问题讨论】:

    标签: php jquery ajax


    【解决方案1】:

    每次您希望能够返回上一步时,更改 window.location.hash。

    即。

    window.location.hash = 'step1';
    

    这会更改 URL 中的 #foo 部分。您还需要 JavaScript 中的计时器来检查哈希是否已更改,因为无法可靠地检测是否点击了后退按钮。类似的东西......

    var oldHash = window.location.hash;
    setInterval(function(){
      if(window.location.hash != oldHash) {
        //the hash was changed, do something
      }
    }, 50);
    

    希望对你有帮助

    【讨论】:

    【解决方案2】:

    我不能说我以前亲自实现过这个,但我记得 jQuery Tools 选项卡组件做了类似的事情。我不确定它是否适用于您的特定情况,但可能值得以他们的方法为起点。

    jQuery Tools AJAX:ed tabs with History support

    【讨论】:

    • 我看了一下这个,我认为它是为静态内容设计的,而不是捕获动态查询字符串。
    猜你喜欢
    • 1970-01-01
    • 2020-07-04
    • 1970-01-01
    • 2015-10-13
    • 2013-05-14
    • 2012-01-19
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    相关资源
    最近更新 更多