Django CKEditor未保存窗口关闭提醒

在使用文本编辑器写博客时,有时可能不小心将页面关闭,或者刷新页面,来不及保存的博文就会消失的无影无踪,令人感到十分沮丧。

如果使用Django CKEditor文本编辑器,只需添加一个js插件并进行简单的配置就可以防止不小心关闭表单尚未保存页面的情况,设置步骤如下:

1. 添加jquery.AreYouSure插件,该插件可以在关闭包含未保存表单的页面时弹出相应提示,Github项目地址为:https://github.com/codedance/jquery.AreYouSure。

2. 修改ckeditor\templates\ckeditor\widget.html,将内容替换为下面的代码:

<p><textarea{{ final_attrs|safe }}>{{ value }}</textarea></p>
<script type="text/javascript" src="/static/js/jquery.are-you-sure.js"></script>
<script type="text/javascript">
    if (typeof CKEDITOR == "undefined") {
        $( document ).ready(function() {
            CKEDITOR.replace("{{ id }}", {{ config|safe }});
            $('form').areYouSure();
        });
    } else {
        CKEDITOR.replace("{{ id }}", {{ config|safe }});
        $('form').areYouSure();
    }
    window.onbeforeunload = function() { 
      if ($('form').hasClass('dirty') || CKEDITOR.instances.id_content.checkDirty()) {
        return "页面上包含尚未保存的表单内容。如果离开此页,未保存的内容将被丢弃。";/*You have made changes on this page that you have not yet confirmed. If you navigate away from this page you will lose your unsaved changes*/
      }
    }
    $(document).ready(function(){
        $('form').submit(function() {
            window.onbeforeunload = null;
        });
    });
</script>

完成上述步骤后,编辑日志后未保存直接关闭页面时会弹出提示"页面上包含尚未保存的表单内容。如果离开此页,未保存的内容将被丢弃"。

实例如下:

本文链接:http://bookshadow.com/weblog/2014/09/02/django-ckeditor-unload-remind/
请尊重作者的劳动成果,转载请注明出处!书影博客保留对文章的所有权利。

如果您喜欢这篇博文,欢迎您捐赠书影博客: ,查看支付宝二维码

Pingbacks已关闭。

评论
  1. 蓝蓝 蓝蓝 发布于 2014年9月5日 14:50 #

    博主写得很好,以后会常来的。
    ###############################################################################
    对了,刚刚我发现了一个主机活动:七折不说还有买5年送5年等优惠http://www.henghost.com/news/311.html

  2. 谷神 谷神 发布于 2014年9月14日 18:37 #

    博主写的真好,顶一下。很高兴认识你。
    欢迎回访!

  3. 我 发布于 2018年3月26日 18:00 #

    checkDirty()是什么意思

  4. 在线疯狂 在线疯狂 发布于 2018年3月26日 19:41 #

    checkDirty检查编辑器的内容是否有改动

  5. 我 发布于 2018年3月27日 09:02 #

    checkDirty()方法会报错

  6. 我 发布于 2018年3月27日 10:07 #

    会报错这个Cannot read property 'checkDirty' of undefined

张贴您的评论