我有一个Flex应用程序,我想在用户按下后退按钮时向用户发出警告,这样他们就不会错误地离开应用程序。我知道由于跨浏览器不兼容,这不能完全在Actionscript中完成。我正在寻找的只是Javascript实现来捕获后退按钮。
有没有人有一个简单的非库跨浏览器脚本来捕获后退按钮?我似乎无法找到一个显示示例的帖子。
答案 0 :(得分:5)
您可以使用window.onbeforeunload
事件。
window.onbeforeunload = function () {
return "Are you sure you want to leave my glorious Flex app?"
}
用户可以按好,离开,取消留下。
正如您所说,这会在页面更改时抛出警报。为了确保它只发生在后退按钮上,我们必须在它们从自然的预期来源离开页面时消除警报消息。
var okayToLeave = false;
window.onbeforeunload = function () {
if (!okayToLeave) {
return "Are you sure you want to leave my glorious Flex app?"
}
}
function OkayToLeave() {
okayToLeave = true;
}
每当他们点击一个自然从该页面获取的按钮或链接时,您就有责任将变量设置为true。我会使用一个不引人注目的javascript函数。
在DOM准备好中设置事件处理程序:
referenceToElement.addEventListener('onClick', OkayToLeave(), false);
这是未经测试的,但应指向正确的方向。尽管这样做看起来很麻烦,但我认为它的功能更完整。它涵盖了用户可以单击收藏夹或从外部应用程序重定向的情况。