在Javascript中实现后退按钮“警告”以在Flex中使用

时间:2011-03-10 17:42:47

标签: javascript flash flex back-button

我有一个Flex应用程序,我想在用户按下后退按钮时向用户发出警告,这样他们就不会错误地离开应用程序。我知道由于跨浏览器不兼容,这不能完全在Actionscript中完成。我正在寻找的只是Javascript实现来捕获后退按钮。

有没有人有一个简单的非库跨浏览器脚本来捕获后退按钮?我似乎无法找到一个显示示例的帖子。

1 个答案:

答案 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);

这是未经测试的,但应指向正确的方向。尽管这样做看起来很麻烦,但我认为它的功能更完整。它涵盖了用户可以单击收藏夹或从外部应用程序重定向的情况。