Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 浏览器后退按钮不起作用时该怎么办';没有预期的效果_Javascript_Jquery_Navigation - Fatal编程技术网

Javascript 浏览器后退按钮不起作用时该怎么办';没有预期的效果

Javascript 浏览器后退按钮不起作用时该怎么办';没有预期的效果,javascript,jquery,navigation,Javascript,Jquery,Navigation,我有一个页面,当用户点击链接时,通过隐藏和显示预加载的div来处理导航。但是,用户认为他们实际上已经更改了页面,所以他们点击浏览器的“后退”按钮试图返回到以前隐藏的div。但当然,他们会回到他们所处的页面 最好的处理方法是什么?90%的流量来自登录页面。我应该在两者之间夹一个重定向页面吗?这是怎么做到的?我可以更改浏览器的后退按钮行为吗?两个想法: 1) 在卸载之前打开。询问用户是否真的想回去 2) Sandwidch有一个重定向页面。登录->重定向->您的页面。只需一次后退单击,用户就会进入重

我有一个页面,当用户点击链接时,通过隐藏和显示预加载的div来处理导航。但是,用户认为他们实际上已经更改了页面,所以他们点击浏览器的“后退”按钮试图返回到以前隐藏的div。但当然,他们会回到他们所处的页面

最好的处理方法是什么?90%的流量来自登录页面。我应该在两者之间夹一个重定向页面吗?这是怎么做到的?我可以更改浏览器的后退按钮行为吗?

两个想法:

1) 在卸载之前打开。询问用户是否真的想回去

2) Sandwidch有一个重定向页面。登录->重定向->您的页面。只需一次后退单击,用户就会进入重定向页面

第二个问题是,对于那些知道自己在做什么的人来说,有点让人头疼。我认为后退按钮(以及所有标准的导航元素)应该尽可能少地受到干扰

在卸载之前,我会选择OnForeUnload:

function sure()
{
  event.returnValue = "sure?";
} 

... 

<BODY onbeforeunload="sure()">
函数sure()
{
event.returnValue=“确定?”;
} 
... 
两个想法:

1) 在卸载之前打开。询问用户是否真的想回去

2) Sandwidch有一个重定向页面。登录->重定向->您的页面。只需一次后退单击,用户就会进入重定向页面

第二个问题是,对于那些知道自己在做什么的人来说,有点让人头疼。我认为后退按钮(以及所有标准的导航元素)应该尽可能少地受到干扰

在卸载之前,我会选择OnForeUnload:

function sure()
{
  event.returnValue = "sure?";
} 

... 

<BODY onbeforeunload="sure()">
函数sure()
{
event.returnValue=“确定?”;
} 
... 

如果您已经在使用jQuery,为什么不简单地添加一个类似jqbbq或hashchange或history的管理器呢?(或者,如果你真的想全力以赴,切换到MVC JavaScript框架,如。)这样,后退按钮将按照用户的期望工作,而不是通过阻止后退按钮或抛出重定向来绕过他们的期望。(当然,除非你有充分的理由:-)

如果你已经在使用jQuery,为什么不简单地添加一个类似jqbbq或hashchange或history的管理器呢?(或者,如果你真的想全力以赴,切换到MVC JavaScript框架,如。)这样,后退按钮将按照用户的期望工作,而不是通过阻止后退按钮或抛出重定向来绕过他们的期望。(当然,除非你有充分的理由:-)

在页面状态发生变化时,在URL的哈希中写入一组唯一的参数。您可以通过JS进行更改,而无需重新加载页面

在页面上设置一个计时器,反复检查当前位置哈希,如果更改(即用户按下后退按钮),则更新页面状态以匹配URL


我在本地应用程序中使用了这个方案,效果非常好。

在更改页面状态时,请在URL的哈希中写入一组唯一的参数。您可以通过JS进行更改,而无需重新加载页面

在页面上设置一个计时器,反复检查当前位置哈希,如果更改(即用户按下后退按钮),则更新页面状态以匹配URL


我的这个方案在本地应用程序中发挥了巨大的作用。

如果您使用jQuery UI之类的浏览器历史插件,您最终会更改历史,这样“后退”按钮就不会实际卸载页面

->用户点击一些东西 ->新地址栏显示

由于用户返回时使用了哈希标记,因此返回到应该在哪个位置启动ShowPrevious div函数


阅读有关jQuery可用的历史管理器插件的更多信息。有很多。大多数(如果不是全部的话)都提供了可以指定的可用回调函数。

如果您使用jQuery UI之类的浏览器历史插件,那么您最终会更改历史,这样“后退”按钮就不会实际卸载页面

->用户点击一些东西 ->新地址栏显示

由于用户返回时使用了哈希标记,因此返回到应该在哪个位置启动ShowPrevious div函数


阅读有关jQuery可用的历史管理器插件的更多信息。有很多。大多数(如果不是全部的话)都提供了可以指定的可用回调函数。

jQuery地址库是另一个很好的选择。


您可以为不同的应用程序状态设置URL,并在页面重新加载时获取URL“参数”。

jQuery地址库是另一个很好的选择。


您可以为不同的应用程序状态设置URL,并在页面重新加载时获取URL“参数”。

您想让用户遍历以前打开的隐藏div吗?您可以使用命名锚(URL中的散列部分)技巧,这是目前非常流行的做法。我不完全确定这是怎么做到的,但我希望有人能尽快发布详细信息。你想让用户遍历他们以前打开的隐藏div吗?你可以使用命名锚(url中的散列部分)技巧,这是目前非常流行的做法。我不完全确定这是怎么做到的,但我希望有人能尽快发布详细信息。jq-bbq说它利用了HTML5 hashchange事件……这是否意味着IE支持不佳?@Emile——作者声称支持IE6到IE8,所以我暂时回答为“否”.jq bbq说它利用了HTML5 hashchange事件……这是否意味着IE支持不佳?@Emile——作者声称支持IE6到IE8,所以我暂时回答为“否”。感谢Osiris…我为附加选项实现了bbq,但为附加选项实现了+1。我为附加选项实现了bbq,但为+1。使用历史记录或状态管理插件可以更好地使页面符合用户期望,而不是重定向页面。使用历史记录或状态管理插件更好