plugin.min.js 1.9 KB

1
  1. tinymce.PluginManager.add("autolink",function(e){var t;e.on("keydown",function(t){if(t.keyCode==13){return o(e)}});if(tinymce.Env.ie){e.on("focus",function(){if(!t){t=true;try{e.execCommand("AutoUrlDetect",false,true)}catch(e){}}});return}e.on("keypress",function(t){if(t.which==41){return n(e)}});e.on("keyup",function(t){if(t.keyCode==32){return i(e)}});function n(e){f(e,-1,"(",true)}function i(e){f(e,0,"",true)}function o(e){f(e,-1,"",false)}function f(e,t,n){var i,o,f,r,s,l,a,c,d;function u(e,t){if(t<0){t=0}if(e.nodeType==3){var n=e.data;if(t>n){t=n}}return t}function g(e,t){i.setStart(e,u(e,t))}function h(e,t){i.setEnd(e,u(e,t))}i=e.selection.getRng(true).cloneRange();if(i.startOffset<5){c=i.endContainer.previousSibling;if(!c){if(!i.endContainer.firstChild||!i.endContainer.firstChild.nextSibling){return}c=i.endContainer.firstChild.nextSibling}d=c.length;g(c,d);h(c,d);if(i.endOffset<5){return}o=i.endOffset;r=c}else{r=i.endContainer;if(r.nodeType!=3&&r.firstChild){while(r.nodeType!=3&&r.firstChild){r=r.firstChild}if(r.nodeType==3){g(r,0);h(r,r.nodeValue.length)}}if(i.endOffset==1){o=2}else{o=i.endOffset-1-t}}f=o;do{g(r,o>=2?o-2:0);h(r,o>=1?o-1:0);o-=1}while(i.toString()!=" "&&i.toString()!==""&&i.toString().charCodeAt(0)!=160&&o-2>=0&&i.toString()!=n);if(i.toString()==n||i.toString().charCodeAt(0)==160){g(r,o);h(r,f);o+=1}else if(i.startOffset===0){g(r,0);h(r,f)}else{g(r,o);h(r,f)}l=i.toString();if(l.charAt(l.length-1)=="."){h(r,f-1)}l=i.toString();a=l.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|(?:mailto:)?[A-Z0-9._%+\-]+@)(.+)$/i);if(a){if(a[1]=="www."){a[1]="http://www."}else if(/@$/.test(a[1])&&!/^mailto:/.test(a[1])){a[1]="mailto:"+a[1]}s=e.selection.getBookmark();e.selection.setRng(i);e.execCommand("createlink",false,a[1]+a[2]);e.selection.moveToBookmark(s);e.nodeChanged();if(tinymce.Env.webkit){e.selection.collapse(false);var C=Math.min(r.length,f+1);g(r,C);h(r,C);e.selection.setRng(i)}}}});