2 lines
2.5 KiB
JavaScript
2 lines
2.5 KiB
JavaScript
(function(c){"use strict";var r=c.document,l={},y=!1,p=["headerSelect","fontSize","color","bgColor","|","bold","italic","underline","through","|","justifyLeft","justifyCenter","justifyRight","justifyJustify","|","insertTable","clearStyle","insertLink","undo","redo"];function A(t){return!t||!r?null:typeof t=="string"?r.querySelector(t):t.nodeType===1?t:t[0]||null}function j(t){return t.id||(t.id="rich-editor-"+Math.floor(Math.random()*1e6)),t.id}function v(t){return String(t.getText()||"").trim()?t.getHtml():""}function S(t){t.textarea.value=v(t.editor)}function T(t){var n=function(){Array.prototype.forEach.call(t.querySelectorAll("button[data-tooltip]"),function(e){e.getAttribute("aria-label")||e.setAttribute("aria-label",e.getAttribute("data-tooltip"))})};n(),c.MutationObserver&&new c.MutationObserver(n).observe(t,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-tooltip"]})}function m(t,n){var e=A(t),o=n||{},a,i,u,d,s,f=c.wangEditor,b;if(!e||!f||!f.createEditor||!f.createToolbar)return null;if(e.dataset.wangEditorInitialized==="true")return l[e.id]||null;a=j(e),i=r.createElement("div"),i.className="rich-editor-host",u=r.createElement("div"),u.className="rich-editor-toolbar",u.id=a+"-toolbar",d=r.createElement("div"),d.className="rich-editor-content",d.id=a+"-content",i.appendChild(u),i.appendChild(d),e.insertAdjacentElement("afterend",i);try{s=f.createEditor({selector:"#"+d.id,html:e.value||"",config:Object.assign({placeholder:e.getAttribute("placeholder")||"请输入内容",onChange:function(h){e.value=v(h)},onBlur:function(h){e.value=v(h)}},o.editorConfig||{}),mode:o.mode||"default"}),f.createToolbar({editor:s,selector:"#"+u.id,config:Object.assign({toolbarKeys:p},o.toolbarConfig||{}),mode:o.mode||"default"}),T(u)}catch(h){return i.remove(),null}return e.hidden=!0,e.setAttribute("aria-hidden","true"),e.dataset.wangEditorInitialized="true",b={textarea:e,editor:s,sync:function(){S(b)},getHtml:function(){return v(s)},getText:function(){return s.getText()}},l[a]=b,b.sync(),b}function g(t,n){var e=t||r,o={};return!e||!e.querySelectorAll||Array.prototype.forEach.call(e.querySelectorAll(".js-rich-editor"),function(a){var i=m(a,n);i&&(o[a.id]=i)}),o}function C(){y||!r||(y=!0,r.addEventListener("submit",function(t){Object.keys(l).forEach(function(n){var e=l[n];e.textarea.form===t.target&&e.sync()})}))}function E(){return C(),g(r)}c.AppRichEditor={init:m,initAll:g,syncAll:function(){Object.keys(l).forEach(function(t){l[t].sync()})}},r&&(r.readyState==="loading"?r.addEventListener("DOMContentLoaded",E):E())})(window);
|