用户离开ckeditor或page时触发的事件

时间:2016-02-17 13:31:20

标签: javascript jquery ckeditor

我一直试图找到一个当用户以任何方式离开ckeditor窗口或页面时会触发的事件,这是因为我想在事件中调用我的save方法,这样当用户确实试图离开他们的时候内容已保存。我已经插入了一个带有警报的条件语句来测试它是否正常工作,但到目前为止还未调用警报,表示我当前使用的事件不正确

这是我的代码块:

$(window).on('beforeunload', function() {
    updateBlockByName(blockname, escape(newhtml), 1, blockid, disableBlogComment);
    if (updateBlockByName) {
        alert('unload save test');
    }
});

非常感谢任何帮助

1 个答案:

答案 0 :(得分:2)

实际上,beforeunload在Blink中被打破得非常糟糕(可能是设计)并且它不会处理alert或其他模态对话框。如果要显示消息,可以使用return

$( window ).on( 'beforeunload', function() {
    return 'Message for the user';
}

它将显示一个confirm对话框,其中包含"离开页面"和"留在页面"的按钮。

此外,还有unload事件,但它与beforeunload一样不可靠。他们俩都不能在移动设备上运行良好。

可能一个好主意不是依赖于检测页面的卸载,而是通过例如可见性来改变可见性。 pagehide事件。当用户将您的页面放在后台并简单地忘记它时,它也会处理所有情况。

关于pagehidebeforeunloadunload和其他类似事件的非常详细的文章是available on Ilya Grigorik's site

如果您只想检测离开编辑器,您可以只听CKEditor's blur event。当用户将光标移到编辑器之外时,它会被触发。