我需要通过javascript停止所有页面重定向。
我有一些脚本会将页面重定向到其他位置。 如何通过jquery或javascript停止页面上的所有页面重定向。
答案 0 :(得分:48)
您可以通过执行以下操作来停止重定向。
<script language="JavaScript" type="text/javascript">
//<![CDATA[
window.onbeforeunload = function(){
return 'Are you sure you want to leave?';
};
//]]>
</script>
不确定是否所有浏览器都支持此功能,但这应该可以解决问题。
答案 1 :(得分:2)
如果我理解正确,您需要阻止用户离开页面吗?
如果是这样,Marcos Placona的答案就是其中的一部分 - 尽管你真正需要的是:
$("a").click(function(e) { e.preventDefault(); });
你也不希望别人打F5我猜?嗯,这更难。在按键上防止默认,跨浏览器是可怕的。但是在这里可以使用一些在某些浏览器中运行的代码:
function disableF5() { // IE
document.onkeydown = function() {
if (window.event && window.event.keyCode == 116) { // Capture and remap F5
window.event.keyCode = 505;
}
if (window.event && window.event.keyCode == 505) { // New action for F5
return false; // Must return false or the browser will refresh anyway
}
}
}
function disableF5v2() { // FIREFOX
$(this).keypress(function(e) {
if (e.keyCode == 116) {
e.preventDefault();
return false;
}
});
}
但是,跨浏览器问题可以部分解决 -
window.onbeforeunload = function(e) {
var message = "Your confirmation message goes here.", e = e || window.event;
// For IE and Firefox
if (e) {
e.returnValue = message;
}
// For Safari
return message;
};
希望无论如何都会有所帮助。最后一段代码来自此网站here上的另一个问题。 罗布
答案 2 :(得分:2)
您是否尝试停止iframe断路器?类似的东西:
<script language="JavaScript" type="text/javascript">
<!--
function breakout_of_frame()
{
if (top.location != location) {
top.location.href = document.location.href ;
}
}
-->
</script>
如果是这样,你就不能。
答案 3 :(得分:1)
如果它只通过链接点击重定向,那么在jQuery中你可以这样做:
$(".someClass a").unbind('click');
如果是现有的网页重定向,您需要向我们提供一些有关此类重定向的更多信息,以便我们进一步提供帮助。
希望这有助于你
答案 4 :(得分:-2)
AFAIK这是不可能的,因为页面重定向可以以多种方式发生。他可以单击一个锚标签,可以提交一个具有不同动作的表单,在按钮单击时将window.location设置为另一个页面,并调用服务器代码进行重定向。
你将无法检测到其中的许多内容。