在IE8中将window.onbeforeunload设置为undefined会导致“未实现错误

时间:2013-06-14 19:14:39

标签: javascript jquery internet-explorer internet-explorer-8 onbeforeload

            if(!$('fieldset.quote-step4').hasClass('show')) {
                window.onbeforeunload = function() {
                    return "Are you sure you want to leave the quote request page? This will reset the form.";
                }
            } else {
                window.onbeforeunload = undefined;
            }

我在私有函数内部的脚本中有上述内容,导致ie8中出现“未实现”错误。

导致错误的具体行是:window.onbeforeunload = undefined;

从我在其他问题中读到的window应该被声明为一个局部变量来解决这个问题 - 但我不确定如何。

任何人都可以向我解释这个错误并提供可能的解决方案吗?

谢谢!

3 个答案:

答案 0 :(得分:5)

试试这个:

$(window).on('beforeunload', function() {
   if($('fieldset.quote-step4').hasClass('show')) {
        return;
   }
   return "Are you sure you want to leave the quote request page? This will reset the form.";
});

当jQuery已经在您的页面上时,使用DOM1处理程序并不是最佳选择。

答案 1 :(得分:3)

window.onbeforeunload = function(){};

答案 2 :(得分:1)

onbeforeunload是一个事件处理程序;显然, IE8不喜欢清除它。

您可以简单地将其设置为不返回任何内容的函数。