这段时间使用js+cookies进行自动草稿保存,个人觉的,这些全在客户端处理比较的好,所以没有使用AJAX+数据库的自动草稿保存方法。
结果出现Ckeditor无法绑定onkeyup,onselect,onclick事件的问题,查看了Ckeditor的API,发现如下说明:
- instanceReady.ckeditor: fired when the editor is created, but before any callback being passed to the ckeditor() method.
- setData.ckeditor: fired when data is set into the editor.
- getData.ckeditor: fired when data is fetched from the editor. The current editor data is also passed in the arguments.
- destroy.ckeditor: fired when the editor gets destroyed. It can be used, for example, to execute some cleanup on the page.
估计是使用instanceReady,然后在网上查找了一翻,要找这东西的事件绑定,真难。找了N久,找到一个Ckeditor二次开发的例子,经过修改,终于成功。下面是绑定方法。
首先是文本编辑器的绑定:
- <textarea name="Content" rows="10" cols="20" id="Content"></textarea>
- <script type="text/javascript">
- var editor = CKEDITOR.replace('Content', {
- language: 'zh-cn', //简体中文
- width: 739,
- height: 125,
- toolbar: 'DJArticle'//工具栏的名称
- });
- </script>
这样,编辑器就出现了。然后是绑定onkeyup,onselect,onclick事件。
- <script type="text/javascript">
- CKEDITOR.instances["Content"].on("instanceReady", function () {
- //set keyup event
- this.document.on("keyup", AutoSave);
- //and click event
- this.document.on("click", AutoSave);
- //and select event
- this.document.on("select", AutoSave);
- });
- function AutoSave() {//相应的操作过程,可以按下面写,也可以按一般javascript过程写。
- CKEDITOR.tools.setTimeout(function () {
- alert("10101010");
- }, 0);
- }
- </script>
至此,绑定完成!