/** +------------------------------------------------------------------------------------+ + iceEditor(富文本编辑器) +------------------------------------------------------------------------------------+ + iceEditor v1.1.6 * MIT License By www.iceui.net + 作者:ice + 官方:www.iceui.net + 时间:2020-06-20 +------------------------------------------------------------------------------------+ + 版权声明:该版权完全归iceUI官方所有,可转载使用和学习,但请务必保留版权信息 +------------------------------------------------------------------------------------+ + iceEditor是一款简约风格的富文本编辑器,体型十分娇小,无任何依赖,整个编辑器只有一个 + 文件,功能却很不平凡!简约的唯美设计,简洁、极速、使用它的时候不需要引用jQuery、font + css……等文件,因为整个编辑器只是一个Js,支持上传图片、附件!支持添加音乐、视频! +------------------------------------------------------------------------------------+ */ "use strict";var ice=ice||{};ice.editor=function(a){var b,c,d;return this.menu=["backColor","fontSize","foreColor","bold","italic","underline","strikeThrough","line","justifyLeft","justifyCenter","justifyRight","indent","outdent","line","insertOrderedList","insertUnorderedList","line","superscript","subscript","createLink","unlink","line","hr","table","files","music","video","insertImage","removeFormat","line","code"],this.backColor=["#ffffff","#000000","#eeece1","#1f497d","#4f81bd","#c0504d","#9bbb59","#8064a2","#4bacc6","#f79646","#f2f2f2","#979797","#ddd9c3","#c6d9f0","#dbe5f1","#f2dcdb","#ebf1dd","#e5e0ec","#dbeef3","#fdeada","#d8d8d8","#595959","#c4bd97","#8db3e2","#b8cce4","#e5b9b7","#d7e3bc","#ccc1d9","#b7dde8","#fbd5b5","#bfbfbf","#3f3f3f","#938953","#548dd4","#95b3d7","#d99694","#c3d69b","#b2a2c7","#92cddc","#fac08f","#a5a5a5","#262626","#494429","#17365d","#366092","#953734","#76923c","#5f497a","#31859b","#e36c09","#7f7f7f","#0c0c0c","#1d1b10","#0f243e","#244061","#632423","#4f6128","#3f3151","#205867","#974806","#c00000","#ff0000","#ffc000","#ffff00","#92d050","#00b050","#00b0f0","#0070c0","#002060","#7030a0"],this.foreColor=this.backColor,this.width="100%",this.height="400px",this.code=0,this.maxWindow=1,this.disabled=0,this.css="",this.uploadUrl=0,this.screenshot=1,this.screenshotUpload=1,this.htmlTag=["meta","style","script","object","form","iframe"],this.formatTag=["address","caption","dd","div","dl","dt","fieldset","h1","h2","h3","h4","h5","h6","legend","fieldset","li","noframes","noscript","ol","ul","p","pre","table","tbody","tfoot","th","thead","tr"],this.getTime="1"+String((new Date).getTime()).substr(4,8),this.iframeId="_iframe"+this.getTime,this.toolId="_tool"+this.getTime,this.linkId="_link"+this.getTime,this.linkInputId="_LinkInput"+this.getTime,this.musicId="_music"+this.getTime,this.musicInputId="_musicInput"+this.getTime,this.videoId="_video"+this.getTime,this.imageId="_image"+this.getTime,this.imgUploadId="_imgUpload"+this.getTime,this.filesId="_files"+this.getTime,this.filesUploadId="_filesUpload"+this.getTime,this.tableId="_table"+this.getTime,this.dragId="_drag"+this.getTime,this.menuList={},b=this,this.editor=this.id(a),this.editor?(this.textarea=0,"TEXTAREA"!==this.editor.nodeName&&"DIV"!==this.editor.nodeName?console.log("暂不支持该标签-->"+this.editor.nodeName+" 推荐使用div"):("TEXTAREA"==this.editor.nodeName?(this.editor.style.display="none",this.divId="_div"+this.getTime,c=this.c("div"),c.className="iceEditor",c.id=this.divId,this.insertAfter(c,this.editor),this.textarea=this.editor,this.editor=this.id(this.divId),this.value=this.textarea.value):(this.editor.className="iceEditor",this.value=this.editor.innerHTML,this.editor.innerHTML=""),this.cssConfig=this.c("style"),this.cssConfig.type="text/css",this.editor.appendChild(this.cssConfig),this.tool=this.c("div"),this.tool.id=this.toolId,this.tool.className="iceEditor-tool iceEditor-noselect",this.editor.appendChild(this.tool),this.iframe=this.c("iframe"),this.iframe.id=this.iframeId,this.iframe.className="iceEditor-noselect",this.iframe.frameBorder=0,this.editor.appendChild(this.iframe),this.dragBg=this.c("div"),this.dragBg.className="iceEditor-dragBg",this.editor.appendChild(this.dragBg),this.drag=this.c("div"),this.drag.id=this.dragId,this.drag.className="iceEditor-drag iceEditor-noselect",this.drag.innerHTML='',this.editor.appendChild(this.drag),this.drag.onmousedown=function(){var a,c;b.dragBg.style.display="block",a=event.clientY,c=b.iframe.clientHeight,window.onmousemove=function(){var d=event.clientY-a;c>=100?(b.iframe.height=c+d+"px",b.height=c+d+"px"):(b.iframe.height="100px",b.height=c+d+"px")},window.onmouseup=function(){window.onmousemove=null,window.onmouseup=null,b.dragBg.style.display="none"}},this.disableds=this.c("div"),this.disableds.className="iceEditor-disabled",this.editor.appendChild(this.disableds),this.w=this.iframe.contentWindow,this.d=this.iframe.contentDocument,this.d.open(),d=this.value.trim(),d.length&&"
"==d.substr(0,3)||(d="
"+this.value+"
/gim,"
\n").replace(/>
\n\n<"),b.d.body.innerHTML=b.unhtml(f)}break;case"max":i=window.innerHeight,"number"!=typeof i&&("CSS1Compat"==document.compatMode?i=document.documentElement.clientHeight:webWidth=document.body.clientWidth),b.editor.style.position="fixed",b.editor.style.zIndex=b.getTime,b.editor.style.width="100%",b.editor.style.height="100%",b.editor.style.top=0,b.editor.style.left=0,b.iframe.height=i-35-20+"px",this.parentNode.style.display="none",b.tool.getElementsByClassName("iceEditor-minWindow")[0].style.display="block";break;case"min":b.editor.removeAttribute("style"),b.iframe.height=b.height,this.parentNode.style.display="none",b.tool.getElementsByClassName("iceEditor-maxWindow")[0].style.display="block";break;default:j=this.attr.split("|"),j.length>1?b.w.document.execCommand(j[0],!1,j[1]):b.w.document.execCommand(j[0],!1,null),b.range.getRangeAt(0).collapse()}return!1})},ice.editor.prototype.paste=function(){function d(a){if(!a)return!1;var b=a.nextSibling;return b&&1!=b.nodeType&&(b=d(b)),b}var a=this,b=function(b){function e(a){var b,c,d,e;for(b=a.split(",")[0].indexOf("base64")>=0?atob(a.split(",")[1]):unescape(a.split(",")[1]),c=a.split(",")[0].split(":")[1].split(";")[0],d=new Uint8Array(b.length),e=0;e"),!0),void 0}if(i=f.split("\n"),1==i.length)return a.setText(f),void 0;for(j=0;j
":"
",c=a.range.getRangeAt(0),c.insertNode(c.createContextualFragment(g)),h=a.range.anchorNode.nextSibling.nextSibling,c.setStart(h,0),c.setEnd(h,0),c.collapse()):("PRE"==a.parentTagName||"PRE"==a.range.anchorNode.tagName)&&a.setText("
",!0),b.preventDefault(),void 0;if(b.ctrlKey||b.metaKey)switch(b.keyCode){case 13:console.log(1),b.preventDefault();break;case 66:case 98:case 73:case 105:case 85:case 117:b.preventDefault()}})},ice.editor.prototype.create=function(){this.cssConfig.styleSheet?this.cssConfig.styleSheet.cssText=this.css:this.cssConfig.innerHTML=this.css,this.menuFormat(),this.menuAction(),this.disableds.style.display=this.disabled?"block":"none"},ice.editor.prototype.getHTML=function(){return this.content.innerHTML},ice.editor.prototype.getText=function(){return this.content.innerText},ice.editor.prototype.setValue=function(a){this.content.innerHTML=a},ice.editor.prototype.addValue=function(a){this.content.innerHTML+=a},ice.editor.css='.iceEditor{color:#353535;font-family:"Microsoft YaHei";font-size:14px;background:#fff;position:relative;border:solid 1px #ccc}.iceEditor *{margin:0;padding:0;box-sizing:border-box}.iceEditor a{color:#606060;text-decoration:none;-webkit-tap-highlight-color:transparent}.iceEditor a:hover{color:#000}.iceEditor input{height:27px;line-height:27px;padding:3px;border:1px solid #B7B7B7;font-family:inherit;font-size:inherit;vertical-align:middle;outline:none}.iceEditor-exec{cursor:pointer}.iceEditor-icon{width:16px;height:16px;fill:currentColor;overflow:hidden;vertical-align:middle;font-size:16px}.iceEditor-noselect{-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.iceEditor-menuDropdown{min-width:35px;min-height:35px;transition:all .4s ease;top:50px;opacity:0;visibility:hidden;position:absolute;background:#fff;z-index:999;box-shadow:0 2px 9px 0 rgba(0,0,0,.2);border-bottom:2px solid #676767;border-top:1px solid #676767}.iceEditor-menuDropdown::before{content:"";display:block;width:0;height:0;border-left:8px solid transparent;border-right:8px solid transparent;border-bottom:8px solid #676767;position:absolute;top:-8px;left:9px}.iceEditor-menuTitle{width:100%!important;text-align:center;height:30px;line-height:30px;border-top:1px solid #efefef}.iceEditor-tool{width:100%;background:#eee;border-bottom:solid 1px #ccc;position:relative}.iceEditor-tool:after,.iceEditor-tool:before{display:table;content:" "}.iceEditor-tool:after{clear:both}.iceEditor-menu{width:100%;padding:0 10px;display:inline-block;float:left}.iceEditor-menu a{list-style:none;float:left;min-width:35px;height:35px;padding:0 5px;text-align:center;line-height:35px;cursor:pointer}.iceEditor-menu a:hover{background:#cdcdcd}.iceEditor-menu>li>div.iceEditor-exec{list-style:none;float:left;min-width:35px;height:35px;padding:0 5px;text-align:center;line-height:35px;cursor:pointer}.iceEditor-menu>li>div.iceEditor-exec:hover{background:#cdcdcd}.iceEditor-menu svg{fill:currentColor;overflow:hidden;vertical-align:middle;font-size:16px}.iceEditor-menu .iceEditor-active{background:#e0e0e0;position:relative;z-index:999}.iceEditor-menu .iceEditor-disabledMask{background:rgba(238,238,238,0.7);width:100%;height:100%;position:absolute;left:0;top:0;display:none}.iceEditor-menu li{display:inline-block;float:left}.iceEditor-menu li .iceEditor-menuDropdown.iceEditor-menuActive{top:44px;opacity:1;visibility:visible}.iceEditor-menu li.iceEditor-minWindow{display:none}.iceEditor-menu li.iceEditor-maxWindow,.iceEditor-menu li.iceEditor-minWindow{float:right}.iceEditor-menu li.iceEditor-maxWindow>div,.iceEditor-menu li.iceEditor-minWindow>div{position:relative;z-index:999}.iceEditor-menu li.iceEditor-maxWindow .iceEditor-icon,.iceEditor-menu li.iceEditor-minWindow .iceEditor-icon{color:#606060}.iceEditor-codeLanguages select{padding:5px 5px;width:120px;outline:none;font-size:15px;margin-top:10px;}.iceEditor-line{height:35px;border-right:1px solid #ccc;width:1px;margin:0 10px;vertical-align:middle}.iceEditor-uploadInput{display:none}.iceEditor-uploadBtn{float:none;width:auto;font-size:15px;background:#00b7ee;height:40px;line-height:40px;padding:0 30px;color:#fff;display:inline-block;margin:0 auto 15px auto;cursor:pointer;box-shadow:0 1px 1px rgba(0,0,0,.1)}.iceEditor-uploadBtn:hover{background:#009ccb}.iceEditor-uploadIcon{width:45px;height:45px;color:#bababa;margin:45px 20px 10px}.iceEditor-backColor{width:230px;padding:5px}.iceEditor-backColor span{width:20px;height:20px;padding:0;margin:1px;display:inline-block}.iceEditor-fontSize{width:280px}.iceEditor-fontSize li{width:40px;text-align:center}.iceEditor-fontSize span{width:40px;display:inline-block;padding:10px 0}.iceEditor-fontSize span:hover{background:#eee;color:#4CAF50}.iceEditor-createLink label{margin-top:10px;display:inline-block;}.iceEditor-link{width:230px;}.iceEditor-popup .iceEditor-insertImage{text-align:center}.iceEditor-popup .iceEditor-insertImageUrl{width:140px;height:27px;outline:0;margin-right:15px}.iceEditor-popup .iceEditor-inputWidth{width:50px;height:27px;outline:0;margin-right:15px}.iceEditor-popup .iceEditor-inputHeight{width:50px;height:27px;outline:0}.iceEditor-popup .iceEditor-btn{width:auto;display:inline-block;float:none;color:#fff!important;height:27px;line-height:25px;padding:0 10px;background:#939393;vertical-align:middle;margin-left:5px;border:1px solid #7b7b7b}.iceEditor-popup .iceEditor-btn:hover{background:#7b7b7b!important;color:#fff}.iceEditor-tableBox{position:relative;width:190px;height:214px;padding:5px;overflow:hidden}.iceEditor-tableBgOn{position:absolute!important;top:5px;left:5px;z-index:4;width:18px;height:18px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIjd6vvD2f9LKLW+AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKwNDEVT0AAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC) repeat}.iceEditor-tableBgOff{width:180px;height:180px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASAgMAAAAroGbEAAAACVBMVEUAAIj4+Pjp6ekKlAqjAAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfYAR0BKhmnaJzPAAAAG0lEQVQI12NgAAOtVatWMTCohoaGUY+EmIkEAEruEzK2J7tvAAAAAElFTkSuQmCC) repeat}.iceEditor-tableNum{height:30px;line-height:30px;text-align:center;color:#757575}.iceEditor-video{text-align:left}.iceEditor-video label{margin-right:20px;display:inline-block}.iceEditor-video input{margin-right:5px}.iceEditor-video div{height:27px;margin-bottom:10px}.iceEditor-popup .iceEditor-videoUrl{width:380px;height:27px;outline:0;margin-right:0}.iceEditor-content{width:100%;height:100%;padding:20px;position:relative}.iceEditor-content:focus{outline:0}.iceEditor-dragBg{position:absolute;width:100%;height:100%;top:0;left:0;z-index:1;display:none;}.iceEditor-drag{color:#757575;background:#eee;text-align:center;height:12px;line-height:0;cursor:n-resize}.iceEditor-disabled{position:absolute;width:100%;height:100%;top:0;left:0;background:rgba(191,191,191,.79);z-index:99999;display:none}.iceEditor-popup{display:none}.iceEditor-popupMain{width:400px;height:200px;position:fixed;margin:auto;top:0;bottom:0;left:0;right:0;background:#fff;box-shadow:0 1px 1px rgba(0,0,0,.12);z-index:2;animation-name:iceEditorPopup;animation-duration:.5s}.iceEditor-popupBox{width:100%;height:100%;position:fixed;top:0;left:0;background:rgba(0,0,0,.33);opacity:.5;filter:alpha(opacity=50);z-index:1}.iceEditor-popupTitle{width:100%;height:30px;line-height:30px;background:#2f2f2f;padding:0 10px;color:#fff}.iceEditor-popupTitle span{display:inline-block;vertical-align:middle}.iceEditor-popupTitle::before{content:"";display:inline-block;width:10px;height:10px;border-radius:10px;background:#c7f98c;vertical-align:middle;margin-right:8px}.iceEditor-popupClose{float:right;padding:0 10px;color:#fff;font-size:18px;cursor:pointer}.iceEditor-popupClose:hover{color:#8fe5ff}.iceEditor-popupContent{width:100%;padding:10px;color:#000;overflow:auto;float:left}.iceEditor-popupBtn{width:100%;border:0;color:#fff;background:#03A9F4;border-top:1px solid #efefef;padding:0 20px;margin:0;height:35px;text-align:center;line-height:35px;cursor:pointer;margin-top:20px;outline:0}.iceEditor-popupBtn:hover{color:#151515;background:#efefef}@keyframes iceEditorPopup{0%{top:-100px;opacity:0}to{top:0;opacity:1}}@media (max-width:768px){.iceEditor-menu .iceEditor-line{display:none}.iceEditor-popupMain{margin:0!important;width:90%!important;height:90%!important;top:5%!important;left:5%!important}@keyframes iceEditorPopup{0%{margin-top:-50px}to{margin-top:0}}}',ice.editor.svg='',function(){var b,c,a=document.createElement("style"),d=document.body; a.type="text/css",a.styleSheet?a.styleSheet.cssText=ice.editor.css:a.innerHTML=ice.editor.css,document.getElementsByTagName("head")[0].appendChild(a),b=document.createElement("div"),b.innerHTML=ice.editor.css+ice.editor.svg,ice.editor.svg=null,c=b.getElementsByTagName("svg")[0],c&&(c.setAttribute("aria-hidden","true"),c.style.position="absolute",c.style.width=0,c.style.height=0,c.style.overflow="hidden",d.firstChild?d.firstChild.parentNode.insertBefore(c,d.firstChild):d.appendChild(c))}();