customEvent.js 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151
  1. /**
  2. * @file
  3. * @name 编辑器事件接口
  4. * @short Custom events
  5. * @des 本文件非编辑器核心文件,仅适用于生成对应的事件接口文档
  6. * UEditor编辑器中的所有事件监听和触发都统一采用
  7. * ''editor''是编辑器实例
  8. * editor.addListener("eventName",handler) 和 editor.fireEvent("eventName")方式调用,支持浏览器原生事件,如keydown,keyup,mousedown,mouseup等
  9. */
  10. /**
  11. * 编辑器加载完成事件(核心),在编辑器准备好所有运行条件时触发,大部分场景可以使用editor.ready(fn)取代。
  12. * @name ready
  13. * @grammar editor.addListener("ready",fn)
  14. * @example
  15. * editor.addListener("ready",function(){
  16. * //this为editor实例
  17. * this.setContent("欢迎使用UEditor!");
  18. * })
  19. * //同如下接口方式调用
  20. * editor.ready(function(){
  21. * this.setContent("欢迎使用UEditor!");
  22. * })
  23. */
  24. /**
  25. * 选区变化事件(核心),当选区出现变化时触发。
  26. * 在UEditor中,任何涉及到光标改变的操作都会触发选区变化事件,该事件主要用来实现工具栏状态反射。
  27. * @name selectionChange
  28. * @grammar editor.addListener("selectionChange",fn)
  29. * @grammar editor.fireEvent("selectionChange")
  30. * @example
  31. * editor.addListener("selectionChange",function(){
  32. * //this为editor实例
  33. * })
  34. */
  35. /**
  36. * 内容变化事件(核心),当编辑区域中的文本内容出现变化时触发
  37. * @name contentChange
  38. * @grammar editor.addListener("contentChange",fn)
  39. * @grammar editor.fireEvent("contentChange")
  40. */
  41. /**
  42. * 粘贴事件(核心),当使用ctr+v快捷键粘贴(包括Chrome、FF浏览器的右键粘贴)时会触发本事件
  43. * @name (before|after)Paste
  44. * @grammar editor.addListener("beforePaste",fn)
  45. * @desc
  46. * * beforePaste 在将粘贴的内容写到编辑器之前触发,这个事件触发时,粘贴的内容还未在编辑器内显示
  47. * * afterPaste 粘贴的内容已经写到编辑器里边后触发
  48. * @example
  49. * editor.addListener("beforePaste",function(type,data){
  50. * //beforePaste事件监听区别于afterPaste事件监听最主要的一个方面是存在一个data参数,
  51. * //该data参数是一个对象,包含属性html。
  52. * //若用户在此处更改该html的值时,将会影响粘贴到编辑器中的内容,主要用于粘贴时需要特殊处理的一些场景。
  53. * console.log(this.getContent) //this都是当前编辑器的实例
  54. * //before事件才用这个参数,用来在写出编辑器之前对粘贴进来的内容进行最后的修改
  55. * data.html = "我把粘贴内容改成了这句话";
  56. * })
  57. */
  58. /**
  59. * 设置内容事件(核心),当调用setContent方法时触发
  60. * @name (before|after)SetContent
  61. * @grammar editor.addListener("beforeSetContent",fn)
  62. * @desc
  63. * * beforeSetContent 在内容写到编辑器之前触发
  64. * * afterSetContent 内容已经写到编辑器里边后触发
  65. * @example
  66. * editor.addListener("beforeSetContent",function(type,data){
  67. * //beforeSetContent事件监听区别于afterSetContent事件监听最主要的一个方面是存在一个data参数,
  68. * //该data参数是一个对象,包含属性html。
  69. * //若用户在此处更改该html的值时,将会影响设置到编辑器中的内容,主要用于设置内容时需要特殊处理的一些场景。
  70. * data.html = "我把设置内容改成了这句话";
  71. * })
  72. */
  73. /**
  74. * getAllHtml事件,当调用getAllHtml方法时触发
  75. * @name getAllHtml
  76. * @grammar editor.addListener("getAllHtml",fn)
  77. * @desc
  78. * * 主要用来对于生成的整个html代码中的head内容进行定制,比如你想插入你自己的样式,script标签等,用来在展示时使用
  79. * @example
  80. * editor.addListener("getAllHtml",function(type,data){
  81. * //data是document中head部分html的封装,可通过data.html来获取对应字符串。
  82. * //需要修改的话得重新赋值data.html = '<style type="text/css"> body{margin:0;}</style>';
  83. * })
  84. */
  85. /**
  86. * 内容提交事件(插件),当内容提交插件加载并调用了autosubmit命令时触发,多用于提交之前的验证
  87. * @name beforeSubmit
  88. * @grammar editor.addListener("beforeSubmit",fn) //若fn返回false,则阻止本次提交
  89. * @example
  90. * editor.addListener("beforeSubmit",function(){
  91. * if(!editor.hasContents()){
  92. * return false;
  93. * }
  94. * })
  95. */
  96. /**
  97. * 如果抓取远程的图片失败了,就触发
  98. * @name catchRemoteError
  99. * @grammar editor.addListener("catchRemoteError",fn)
  100. * @example
  101. * editor.addListener("catchRemoteError",function(){
  102. * console.log("抓取失败了!")
  103. * })
  104. */
  105. /**
  106. * 当抓取远程的图片成功并会返回生成图片的链接时触发
  107. * @name catchRemoterSuccess
  108. * @grammar editor.addListener("catchRemoterSuccess",fn)
  109. * @example
  110. * editor.addListener("catchRemoterSuccess",function(){
  111. * console.log("抓取成功")
  112. * })
  113. */
  114. /**
  115. * 编辑模式切换事件(插件),当源码模式和富文本模式发生切换时触发事件
  116. * @name sourceModeChanged
  117. * @grammar editor.addListener("sourceModeChanged",fn)
  118. * @example
  119. * editor.addListener("sourceModeChanged",function(type,mode){
  120. * //mode代表了当前的编辑模式,true代表切换到了源码模式,false代表切换到了富文本模式
  121. * })
  122. */
  123. /**
  124. * 全屏切换事件(插件),当执行全屏切换的时候触发事件
  125. * @name fullScreenChanged
  126. * @grammar editor.addListener("fullScreenChanged",fn)
  127. * @example
  128. * editor.addListener("fullScreenChanged",function(type,mode){
  129. * //mode代表当前是否全屏,true代表切换到了全屏模式,false代表切换到了普通模式
  130. * })
  131. */
  132. /**
  133. * 字数超出限制事件(插件),当输入的字符数超出配置项配置时触发
  134. * @name wordCountOverflow
  135. * @grammar editor.addListener("wordCountOverflow",fn)
  136. * @example
  137. * editor.addListener("wordCountOverflow",function(type,length){
  138. * console.log(length)
  139. * })
  140. */