我希望能够在某些页面上禁用“history.go(-1)”。 我在想如果有一种方法来清理Javascript的历史对象。想法? “history.go()”在某些浏览器(例如IE)中看起来运行不佳。真的吗?任何解决方案?禁用某些页面上的“history.go(-1)”
回答
您可以通过写的go
方法,但它不会让你多
history.go = function(){};
这将禁用的history.go
所有用途,而不是只当你通过一个-1
。
正如其他人指出的那样 - 这不会阻止用户使用其浏览器上的“后退”按钮。
您无法重写此浏览器行为。如果可以的话,会有混乱,因为恶意软件会试图接管每个人的历史。
如果你想禁用浏览器返回按钮,这根本是不可能的。如果网站可能会混淆浏览器的功能,您会喜欢吗?
如果用户启用了JavaScript,则用户可能很难返回。我用过这样的网站。当他们这样做时,我讨厌它。 – Andy 2010-11-01 16:43:29
是的,我知道你的意思。通常快速点击几次就可以得到你想要的。我猜这是一个中间页面,返回适当的JavaScript和/或HTTP代码转发浏览器 – 2010-11-01 16:46:56
您可以做的最好的“禁用”历史记录是在新窗口中打开您的页面,这将不会有历史记录。在新窗口中打开的页面没有启用后退按钮,并且history.go(-1)将不会执行任何操作。
简而言之,没有什么可以(或应该)能够做到。
修改,以明确暗示。我以为我很清楚,但显然我没有。
Ctrl-H在任何窗口中打开历史记录 – 2010-11-01 16:34:35
@ m.edmondson:我意识到这一点,但打开页面的新窗口没有启用后退按钮,history.go(-1)不会执行任何操作。 – Robusto 2010-11-01 16:36:42
好点,如果你编辑你的答案,我会反过来投票 – 2010-11-01 16:45:30
你有两种选择。
加载带有发布请求的页面,这将阻止用户使用后退按钮,因为您可以在服务器端捕获重新加载。 (你需要用js来包装所有的超链接,所以有点工作,而且解决方案很难看)。
使用DOM将内容加载到页面中。历史将无法回溯。 (或我在这里错了: - |)
更清楚地描述你的问题,可能有更好的解决方案,你需要去哪里。
我不明白第1点,你能详细说明一下吗? – 2010-11-01 16:52:33
在您的共享页面页眉将这个:
<body onLoad="history.forward()">
它总是强迫用户,他们已经在您的网站访问最近的页面。
反对票的原因很好。 – 2010-11-01 17:39:48
这是丑陋的,但可能工作:
$(document).load(function(){
document.location.href = document.location.href + "#";
setInterval(function(){
if (window.location.hash != '#')
document.location.href = document.location.href + "#";
}, 100);
});
唉!
德斯蒙德,
我的老板并不想后退按钮就降落page.I工作,知道这是愚蠢的,但我能做些什么。
如何使用默认页面(index.php或其他)来指向前进。
的index.php:
header('location:start.html');
//or likewise with js,
document.location = 'start.html';
的start.html:
my real start
为用户点击后退按钮,在index.php将重做转发。
问候,
感谢您的所有答复。经过两天的杂耍,我现在想出了这个解决方案。 如果当前页面是首页,我使用PHP向body标签输出一个类。像
<body class='front'>
,然后一些使用jQuery启用/在飞行中禁止 “history.go(X)”。
$(document).ready(){
if($('body.front').length>0){
$('#backbutton').click(function(){ window.history.back(); });
}else{
$('#backbutton').unbind('click');
}
}
其实,我是工作的项目需要一个iframe里面的网站停用触发父窗口的后退按钮的元素。 js变成:
var backbutton=parent.window.getElementById('#backbutton');
$(document).ready(){
if($('body.front').length>0){
$(backbutton).click(function(){ window.history.back(); });
}else{
$(backbutton).unbind('click');
}
}
- 1. 禁用某些页面上的ScriptManager
- 2. 如何禁用某些页面的UpdateProgress(在母版页上)?
- 3. 为某些页面禁用HTTP GET php
- 4. 暂时禁止访问某些页面
- 5. Bootstrap - 在某些页面上禁用响应功能
- 6. Android WebView - history.go(-1)
- 7. 仅在某些页面上使用SSL?
- 8. 如何禁用某些HTML页面上点击右键有一些例外
- 9. History.go(-1)不工作的具有指向同一页面
- 10. .htaccess某些页面上的SSL
- 11. 某些页面上的强制方向
- 12. .htaccess控制某些页面上的HTTPS
- 13. 在某些页面
- 14. 在Excel中的某些页面上跳过页脚页面
- 15. 如何在asp.net中禁用某些页面的CSS
- 16. 如何禁用其他页面的某些代码?
- 17. 如何禁用Joomla中某些文章的页面元素
- 18. 当某些元素被占用时禁用页面滚动
- 19. 禁用用户在某些情况下离开页面(javascript)
- 20. Android:如何禁用某些特定页面的webview上的键盘?
- 21. 如何禁用页面上的某些条件的按钮/链接php/html
- 22. 您可以禁用WordPress上某些页面的响应式布局吗?
- 23. 在网站上隐藏某些页面
- 24. 在某些页面上未显示
- 25. UIWebView ScalePagesToFit在某些页面上?
- 26. fullpage.js只在某些页面上
- 27. MoinMoin ACL在某些页面上
- 28. jQuery在某些页面上失败
- 29. mysql_select_db在某些页面上失败
- 30. 在某些页面上禁用离子型angularjs应用程序sidemenu
你在实现我的禁用功能吗?用户只需点击后退按钮 – 2010-11-01 16:25:10
我在HTML页面中有一个
魔鬼还是什么?如果用户不想在您的网站上,不要试图强迫他们成为! – user359996 2010-11-01 18:39:12