plugin.min.js 1.3 KB

1
  1. tinymce.PluginManager.add("tabfocus",function(e){var n=tinymce.DOM,t=tinymce.each,i=tinymce.explode;function f(e){if(e.keyCode===9&&!e.ctrlKey&&!e.altKey&&!e.metaKey){e.preventDefault()}}function o(f){var o,r,a,u;if(f.keyCode!==9||f.ctrlKey||f.altKey||f.metaKey){return}function c(i){r=n.select(":input:enabled,*[tabindex]:not(iframe)");function f(e){return e.nodeName==="BODY"||e.type!="hidden"&&e.style.display!="none"&&e.style.visibility!="hidden"&&f(e.parentNode)}function a(e){return e.tabIndex||e.nodeName=="INPUT"||e.nodeName=="TEXTAREA"}function c(e){return!a(e)&&e.getAttribute("tabindex")!="-1"&&f(e)}t(r,function(n,t){if(n.id==e.id){o=t;return false}});if(i>0){for(u=o+1;u<r.length;u++){if(c(r[u])){return r[u]}}}else{for(u=o-1;u>=0;u--){if(c(r[u])){return r[u]}}}return null}a=i(e.getParam("tab_focus",e.getParam("tabfocus_elements",":prev,:next")));if(a.length==1){a[1]=a[0];a[0]=":prev"}if(f.shiftKey){if(a[0]==":prev"){r=c(-1)}else{r=n.get(a[0])}}else{if(a[1]==":next"){r=c(1)}else{r=n.get(a[1])}}if(r){var l=tinymce.get(r.id||r.name);if(r.id&&l){l.focus()}else{window.setTimeout(function(){if(!tinymce.Env.webkit){window.focus()}r.focus()},10)}f.preventDefault()}}e.on("init",function(){if(e.inline){tinymce.DOM.setAttrib(e.getBody(),"tabIndex",null)}});e.on("keyup",f);if(tinymce.Env.gecko){e.on("keypress keydown",o)}else{e.on("keydown",o)}});