Javascript 窗口。位置工作,但不是无处不在
此功能适用于IE7、firefox和opera 10.6。它不允许加载不同的页面,除非用户单击调用令牌函数的链接或按钮 除非调用令牌函数,否则window.location.href将替换为当前urlJavascript 窗口。位置工作,但不是无处不在,javascript,Javascript,此功能适用于IE7、firefox和opera 10.6。它不允许加载不同的页面,除非用户单击调用令牌函数的链接或按钮 除非调用令牌函数,否则window.location.href将替换为当前url 谢谢您的时间。您的语法混乱。还有太多的其他声明 这就是问题所在: var where_to = confirm("You have locked this record. You can only leave by clicking cancel."); if (where_to== true)
谢谢您的时间。您的语法混乱。还有太多的其他声明 这就是问题所在:
var where_to = confirm("You have locked this record. You can only leave by clicking cancel.");
if (where_to== true) {
alert(window.location);
window.location.href = window.location;
} else {
window.location.href = window.location;
}
编辑
根据您的评论,听起来您正试图这样做:您希望能够阻止用户离开页面,除非他们通过单击“取消”完成此操作
在这种情况下,应该使用onbeforeunload
事件。这是,这是关于这次活动的
其思想是,每当用户试图离开页面时(即使只是关闭浏览器或在地址栏中键入其他地址),都会调用此函数
功能有限。您只能返回一个字符串。如果用户点击“取消”,浏览器将使用此按钮提示用户,然后用户将停留在页面上。他们可以点击OK继续离开页面。虽然只能返回字符串,但不必返回。您可以检查条件,并且仅当条件通过时才返回字符串。看看这个例子:
} else {
//alert(tokenset);
alert('You have passed the token test');
}
如果设置了令牌,那么用户将什么也看不到,他们将离开页面。否则,这将提示用户确保他们确实想要离开页面
需要注意的几点:
- 提示在不同的浏览器中看起来不同(措辞不同)。我会尝试一下,以确保您的字符串在提示符的其余部分看起来正常
- 这不会阻止用户离开。这只会提醒用户他们应该做一些不同的事情。无法可靠地防止用户表单离开页面
- 除此之外,您还应该处理用户会话结束(在服务器上)的事件,并在此时释放锁
- 您有两个else语句和一个额外的}
window.onbeforeunload = function () {
if (MyTokenIsNotSet) {
return 'You have not released the lock';
}
};
请填写您的代码,您似乎遗漏了一些代码
编辑到您的编辑:尝试删除警报。有时警报可能会导致问题,因此可能会阻止您设置
window.location.href
我猜这是更大代码块的一部分-他说它在IE 7、Firefox和Opera中工作。如果有语法错误,它根本就不会工作。是的,我清除了一些。脚本执行,没有错误,我可以在窗口外发出警报。位置替换。似乎出于某种原因,chrome和safari可以看到新的window.location.href,但他们没有应用它;它可以在ie7、firefox中使用,但不能在chrome或safari中使用。我真的不太在乎safari。与其将href更改为当前页面,不如单击一个链接,而不是将href更改为变量中的内容,然后单击“链接”或“返回”按钮。查看我修改的答案。我认为这会有帮助。“IE 7、firefox和opera 10.6”…什么时候不起作用?它在Chrome或Safari中不起作用。你说的在Chrome或Safari中不起作用是什么意思?那代码中没有一点逻辑!
if (where_to== true)
{
alert(window.location);
window.location.href = window.location;
} else {
alert('You have passed the token test');
}