13

我正在使用 javascript 在“index.template.html”文档中的 Flex4 应用程序中工作。我在 Firefox 中使用 onbeforeunload 时遇到问题。该应用程序在 IE 中完美运行,但完全相同的应用程序不适用于 FF。(见下文)

<script type="text/javascript">
window.onbeforeunload=before;
window.onunload=after;

function before(evt)
{
   var flex=document.$(application)||window.$(application);
   flex.unloadMethod(); //custom method to log out the user
}

function after(evt)
{

}
</script>

根据我的发现,FF 似乎没有注册 onbeforeunload 事件,所以我发现使用的流行的东西是与 JQuery 绑定。因此,我删除了上面的代码并将其替换为下面的代码,但是当用户尝试在 IE 和 FF 中离开页面时,它不会显示弹出窗口。似乎为此使用 JQuery 的任何人似乎都在做同样的事情,所以我不知道发生了什么。

<script type="text/javascript">
$(window).bind("beforeunload",function(event){
   return "This should create a pop-up";
});
</script>

最终,像在第一段代码中那样调用“flex.unloadMethod”会很好,但目前我只是想让一个弹出窗口工作,所以我知道我在正确的轨道上。任何见解将不胜感激。

4

2 回答 2

30

尝试:

<script>
    $(window).on('beforeunload', function(){
        return "This should create a pop-up";
    });
</script>

示例:http: //jsfiddle.net/AeztA/3/

于 2013-05-21T18:41:22.447 回答
1

想补充一点,我发现您不能在 Firefox 中使用空字符串。它必须至少为 1 个空白,例如作为返回。

var text = 'Exit Message';

$(window).on('beforeunload', function(){
    return " " + text;
});
于 2014-11-13T16:40:19.647 回答