从window.onbeforeunload中排除DIV中的点击次数

时间:2010-04-18 02:35:50

标签: javascript jquery window onbeforeunload

给出以下功能:

window.onbeforeunload= function() {
    if (CKEDITOR.instances.stuff.getData().length > 0 && oktoquit == false) {
        return "You have unsaved changes. Click Cancel now, then 'Save' to save them. Click OK now to discard them.";
    }
};

如果用户点击带有ID的div中的链接,我想要一种排除此功能的方法:

<div id="ignore me"><a href="">blah</a><a href="">blah</a><a href="">blah</a></div>

有什么想法吗?

**更新 原来,该网站搜索的以下代码导致了该问题。但为什么呢?

$("#searchresults li").live('click', function(e) {
    if (e.target.nodeName != "a") {
        window.location = $(this).find('a').attr('href');
    }
});

2 个答案:

答案 0 :(得分:1)

你可以这样做:

$("#ignoreMe").click(function() {
  window.onbeforeunload = null;
});

我将您的ID更改为ignoreMe,因此它有效,但您明白了:)根据您的问题判断,如果您想要排除任何内部链接,您可能需要#ignoreMe a作为选择器执行处理程序的div,无论你想要什么,只需使用那个选择器。

答案 1 :(得分:0)

window.top.onbeforeunload这会忽略完成工作的CKEDITOR iFrame