【问题标题】:How to distinguish browser back / forward button?如何区分浏览器的后退/前进按钮?
【发布时间】:2011-01-08 12:01:27
【问题描述】:

有可能吗?更好的是,jQuery可以吗?

我需要知道是使用单击后退按钮还是前进按钮,以便我可以正确使用页面过渡效果,例如。如果他们向前打,则从左向右滑动,反之亦然。

【问题讨论】:

    标签: javascript jquery button back


    【解决方案1】:

    您可以使用really simple history

    但如果您想自己处理,您可以使用哈希键 (window.location.hash),例如在此处设置幻灯片编号。 当用户单击返回或下一步时,哈希键将更改,您会检测到它并进行更改。

    不幸的是,您必须自己检查更改,方法是设置一个间隔(即:300 毫秒)并检查以前的值。 HTML5 有一个 onhashchange 事件。

    【讨论】:

      【解决方案2】:

      @大卫

      由于浏览器后退按钮不跟踪 ajax 请求,开发人员别无选择,只能补充这种功能不足。使用 jquery,我们必须手动跟踪 ajax 请求并手动重新请求部分页面,以便为用户提供他们想要和期望的内容。

      【讨论】:

        【解决方案3】:

        用户无需单击浏览器中的后退按钮即可转到上一页。他可以右键单击并从上下文菜单中选择“后退”或“前进”选项。他也可以按键盘导航到另一个页面。因此,捕捉“后退”按钮的点击并不是一个好主意。

        【讨论】:

          【解决方案4】:

          您可以使用历史对象。它具有访问页面的数组。最近的条目是最后一个前进或后退按钮页面。

          【讨论】:

            【解决方案5】:

            我们的指导设计原则之一是:

            永远,永远,永远不要破坏后退按钮。

            这意味着不干扰它的操作,这意味着让它不理会。​​p>

            如果您必须知道用户按下了哪个按钮,那么您很不走运,这是设计使然。编写浏览器的人不希望你这样做。我不希望您干扰后退按钮的功能。用户不希望你这样做。所以,不要。

            /咆哮。

            【讨论】:

            • 我不打算破坏后退按钮,从来没有。只需要它来进行页面转换。
            • 修复后退按钮怎么样?例如,在一个 ajax 页面中,后退按钮将您带到前一页,而不是前一页(因为它是用 ajax 修改的)?
            • 很公平。作为一项规则,我不使用 AJAX 进行这种转换。 在我看来,如果 UI 确实需要显示不同的页面,那么应该将它们带到不同的页面。 AJAX 应该用于呈现交互式 UI,但不能用于重新定义预期的浏览器行为。
            猜你喜欢
            • 2013-07-31
            • 2011-07-28
            • 2018-11-28
            • 1970-01-01
            • 1970-01-01
            • 2014-05-10
            • 2013-03-02
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多