tinymce-editor/copy_this/modules/hdi/hdi-tinymce/tinymce/plugins/tabfocus/plugin.min.js
2013-07-25 23:50:43 +02:00

1 line
1.2 KiB
JavaScript
Executable File

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