js如何使浏览器的后退和前进功能失效(IE FF 谷歌)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js如何使浏览器的后退和前进功能失效(IE FF 谷歌)相关的知识,希望对你有一定的参考价值。

js如何使浏览器的后退和前进功能失效(IE FF 谷歌)比如我从http://localhost/test.html 中点击其他的链接并跳转到该链接,在新的链接中的浏览器窗口点击后退按钮,不要让他跳转到原来的链接(http://localhost/test.html ),这个用js如何实现呢 有什么好的办法吗?而且要能在IE FF 谷歌浏览器中都能起作用。
window.open() 不是我想要的效果 是连接的那种

方法一:直接返回
可以用一个按钮.
<input id="Button2" type="button" value="返回" onclick="history.back(-1)"/>

方法二:提示跳转
Response.Write("<script language=javascript>alert(\'注册成功,请登陆!\');this.top.location.href=\'"&urlgo&"\';</script>")
参考技术A 在新的链接中的浏览器窗口点击后退按钮,不要让他跳转到原来的链接(http://localhost/test.html )??
不太看的懂

<input id="Button2" type="button" value="返回" onclick="history.back(-1)"/>这个不行?
参考技术B 你跳转时用 window.open 就可以啦~

------------
location.replace .. 没其他方法了。

如何使功能仅在第一个主体加载时起作用?

【中文标题】如何使功能仅在第一个主体加载时起作用?【英文标题】:How to make a function only work on first body onload? 【发布时间】:2011-05-11 23:48:15 【问题描述】:

我有一个分类网站,当用户第一次进入网站时,会在 body onload 事件上提交一个表单:

表单已提交并在同一页面上的 iframe 中显示其结果。

问题是我不希望每次用户在浏览器中单击后退或前进时都调用 submit_form() 函数,那么如何防止浏览器在使用后退/前进按钮时提交它?

例子:

用户进入网站时提交表单。 表单在 iframe 中显示搜索结果 用户单击其中一个结果并显示新页面 用户点击返回按钮再次转到搜索结果 用户发现表单再次被重新提交,因为 body onload 触发器

我应该如何解决这个问题?

谢谢

【问题讨论】:

@Chinmayee 为什么要从标签中删除 php 和 mysql?我认为它们是相关的。 这个问题是通用的,可以应用于任何语言,如 java、.net。数据库技术也与这个问题无关。第三,我们可以为任何问题设置 5 个标签,所以我认为 session/cookie 是比 php 和 mysql 更相关的标签 @Chinmayee 你怎么知道他想要会话或cookie?它们确实有一些相关性,但是有 php 和 mysql 更有帮助,因为你知道他会考虑服务器端和/或数据库方法。 【参考方案1】:

仅客户端解决方案:设置cookie。

【讨论】:

对于禁用 cookie 的人,您可以对 URL 进行后备(例如提供参数 ?fristrun=true)【参考方案2】:

你用 php 标记了这个问题,所以我认为使用服务器端会话更好

开始一个会话,初始化一个会话 varto 0

用户进入网站时提交表单。

如果 session var == 0 则显示结果

表单在 iframe 中显示搜索结果

将会话变量设置为 1

用户单击其中一个结果并显示新页面 用户点击返回按钮再次进入搜索结果

这不会发生:

用户发现表单再次被重新提交,因为 body onload 触发器

【讨论】:

不会提交仍然发生,只有 php 不返回响应?我认为解决方案需要基于客户端/cookie 才能首先停止提交.. 好的,cookie 也可以。我只是控制第二页上的会话

以上是关于js如何使浏览器的后退和前进功能失效(IE FF 谷歌)的主要内容,如果未能解决你的问题,请参考以下文章

防止页面后退(使浏览器后退按钮失效)

javascript怎么禁用浏览器后退按钮

浏览器后退按钮的 IE9 中 url 中的哈希更改

移动端h5禁用浏览器左滑右滑的前进后退功能

栈:如何实现浏览器的前进和后退功能?

Angular js-模拟浏览器后退/前进按钮禁用