⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editor_plugin.js

📁 这是一个开源的博客源码
💻 JS
字号:
(function(){var g=tinymce.dom.Event,j=tinymce.grep,i=tinymce.each,f=tinymce.inArray;function h(b,c,d){var e,a;e=b.createTreeWalker(c,NodeFilter.SHOW_ALL,null,false);while(a=e.nextNode()){if(d){if(!d(a)){return false}}if(a.nodeType==3&&a.nodeValue&&/[^\s\u00a0]+/.test(a.nodeValue)){return false}if(a.nodeType==1&&/^(HR|IMG|TABLE)$/.test(a.nodeName)){return false}}return true}tinymce.create("tinymce.plugins.Safari",{init:function(c){var b=this,a;if(!tinymce.isWebKit){return}b.editor=c;b.webKitFontSizes=["x-small","small","medium","large","x-large","xx-large","-webkit-xxx-large"];b.namedFontSizes=["xx-small","x-small","small","medium","large","x-large","xx-large"];c.addCommand("CreateLink",function(n,o){var d=c.selection.getNode(),e=c.dom,p;if(d&&(/^(left|right)$/i.test(e.getStyle(d,"float",1))||/^(left|right)$/i.test(e.getAttrib(d,"align")))){p=e.create("a",{href:o},d.cloneNode());d.parentNode.replaceChild(p,d);c.selection.select(p)}else{c.getDoc().execCommand("CreateLink",false,o)}});c.onPaste.add(function(l,d){function e(k){k=k.target;if(k.nodeType==1){k.style.cssText="";i(l.dom.select("*",k),function(n){n.style.cssText=""})}}g.add(l.getDoc(),"DOMNodeInserted",e);window.setTimeout(function(){g.remove(l.getDoc(),"DOMNodeInserted",e)},0)});c.onKeyUp.add(function(q,t){var e,r,d,s,n;if(t.keyCode==46||t.keyCode==8){r=q.getBody();e=r.innerHTML;n=q.selection;if(r.childNodes.length==1&&!/<(img|hr)/.test(e)&&tinymce.trim(e.replace(/<[^>]+>/g,"")).length==0){q.setContent('<p><br mce_bogus="1" /></p>',{format:"raw"});s=r.firstChild;d=n.getRng();d.setStart(s,0);d.setEnd(s,0);n.setRng(d)}}});c.addCommand("FormatBlock",function(m,n){var d=c.dom,e=d.getParent(c.selection.getNode(),d.isBlock);if(e){d.replace(d.create(n),e,1)}else{c.getDoc().execCommand("FormatBlock",false,n)}});c.addCommand("mceInsertContent",function(d,e){c.getDoc().execCommand("InsertText",false,"mce_marker");c.getBody().innerHTML=c.getBody().innerHTML.replace(/mce_marker/g,c.dom.processHTML(e)+'<span id="_mce_tmp">XX</span>');c.selection.select(c.dom.get("_mce_tmp"));c.getDoc().execCommand("Delete",false," ")});c.onKeyPress.add(function(w,n){var e,C,d,y,A,z,B,D,x,E,F;if(n.keyCode==13){B=w.selection;e=B.getNode();if(n.shiftKey||w.settings.force_br_newlines&&e.nodeName!="LI"){b._insertBR(w);g.cancel(n)}if(C=a.getParent(e,"LI")){d=a.getParent(C,"OL,UL");D=w.getDoc();F=a.create("p");a.add(F,"br",{mce_bogus:"1"});if(h(D,C)){if(z=a.getParent(d.parentNode,"LI,OL,UL")){return}z=a.getParent(d,"p,h1,h2,h3,h4,h5,h6,div")||d;y=D.createRange();y.setStartBefore(z);y.setEndBefore(C);A=D.createRange();A.setStartAfter(C);A.setEndAfter(z);x=y.cloneContents();E=A.cloneContents();if(!h(D,E)){a.insertAfter(E,z)}a.insertAfter(F,z);if(!h(D,x)){a.insertAfter(x,z)}a.remove(z);z=F.firstChild;y=D.createRange();y.setStartBefore(z);y.setEndBefore(z);B.setRng(y);return g.cancel(n)}}}});c.onExecCommand.add(function(q,o){var p,d,r,e;if(o=="InsertUnorderedList"||o=="InsertOrderedList"){p=q.selection;d=q.dom;if(r=d.getParent(p.getNode(),function(k){return/^(H[1-6]|P|ADDRESS|PRE)$/.test(k.nodeName)})){e=p.getBookmark();d.remove(r,1);p.moveToBookmark(e)}}});c.onClick.add(function(e,d){d=d.target;if(d.nodeName=="IMG"){b.selElm=d;e.selection.select(d)}else{b.selElm=null}});c.onInit.add(function(){b._fixWebKitSpans()});c.onSetContent.add(function(){a=c.dom;i(["strong","b","em","u","strike","sub","sup","a"],function(d){i(j(a.select(d)).reverse(),function(e){var m=e.nodeName.toLowerCase(),n;if(m=="a"){if(e.name){a.replace(a.create("img",{mce_name:"a",name:e.name,"class":"mceItemAnchor"}),e)}return}switch(m){case"b":case"strong":if(m=="b"){m="strong"}n="font-weight: bold;";break;case"em":n="font-style: italic;";break;case"u":n="text-decoration: underline;";break;case"sub":n="vertical-align: sub;";break;case"sup":n="vertical-align: super;";break;case"strike":n="text-decoration: line-through;";break}a.replace(a.create("span",{mce_name:m,style:n,"class":"Apple-style-span"}),e,1)})})});c.onPreProcess.add(function(e,d){a=e.dom;i(j(d.node.getElementsByTagName("span")).reverse(),function(n){var p,o;if(d.get){if(a.hasClass(n,"Apple-style-span")){o=n.style.backgroundColor;switch(a.getAttrib(n,"mce_name")){case"font":if(!e.settings.convert_fonts_to_spans){a.setAttrib(n,"style","")}break;case"strong":case"em":case"sub":case"sup":a.setAttrib(n,"style","");break;case"strike":case"u":if(!e.settings.inline_styles){a.setAttrib(n,"style","")}else{a.setAttrib(n,"mce_name","")}break;default:if(!e.settings.inline_styles){a.setAttrib(n,"style","")}}if(o){n.style.backgroundColor=o}}}if(a.hasClass(n,"mceItemRemoved")){a.remove(n,1)}})});c.onPostProcess.add(function(e,d){d.content=d.content.replace(/<br \/><\/(h[1-6]|div|p|address|pre)>/g,"</$1>");d.content=d.content.replace(/ id=\"undefined\"/g,"")})},getInfo:function(){return{longname:"Safari compatibility",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/safari",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_fixWebKitSpans:function(){var a=this,b=a.editor;g.add(b.getDoc(),"DOMNodeInserted",function(c){c=c.target;if(c&&c.nodeType==1){a._fixAppleSpan(c)}})},_fixAppleSpan:function(b){var o=this.editor,a=o.dom,e=this.webKitFontSizes,p=this.namedFontSizes,d=o.settings,n,c;if(a.getAttrib(b,"mce_fixed")){return}if(b.nodeName=="SPAN"&&b.className=="Apple-style-span"){n=b.style;if(!d.convert_fonts_to_spans){if(n.fontSize){a.setAttrib(b,"mce_name","font");a.setAttrib(b,"size",f(e,n.fontSize)+1)}if(n.fontFamily){a.setAttrib(b,"mce_name","font");a.setAttrib(b,"face",n.fontFamily)}if(n.color){a.setAttrib(b,"mce_name","font");a.setAttrib(b,"color",a.toHex(n.color))}if(n.backgroundColor){a.setAttrib(b,"mce_name","font");a.setStyle(b,"background-color",n.backgroundColor)}}else{if(n.fontSize){a.setStyle(b,"fontSize",p[f(e,n.fontSize)])}}if(n.fontWeight=="bold"){a.setAttrib(b,"mce_name","strong")}if(n.fontStyle=="italic"){a.setAttrib(b,"mce_name","em")}if(n.textDecoration=="underline"){a.setAttrib(b,"mce_name","u")}if(n.textDecoration=="line-through"){a.setAttrib(b,"mce_name","strike")}if(n.verticalAlign=="super"){a.setAttrib(b,"mce_name","sup")}if(n.verticalAlign=="sub"){a.setAttrib(b,"mce_name","sub")}a.setAttrib(b,"mce_fixed","1")}},_insertBR:function(e){var a=e.dom,c=e.selection,b=c.getRng(),d;b.insertNode(d=a.create("br"));b.setStartAfter(d);b.setEndAfter(d);c.setRng(b);if(c.getSel().focusNode==d.previousSibling){c.select(a.insertAfter(a.doc.createTextNode("\u00a0"),d));c.collapse(1)}e.getWin().scrollTo(0,a.getPos(c.getRng().startContainer).y)}});tinymce.PluginManager.add("safari",tinymce.plugins.Safari)})();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -