works:programmer:js:jquery-save-handler
Обработчик нажатия CTRL+S написанный на JS
// // Save page handler... Handles CTRL+S keystroke press // // Usage example : // // var n = new SaveHandler(); // n.addSaveHandler(function() { // alert("Before save"); // }); // // n.addSaveHandler(getElementById("submit_button_id")); // // n.addSaveHandler($("#submit_button_id")); // Multiplie object also pass via function call // // @author : Eugene (http://eugene.esy.es/works/programmer/js/jquery-save-handler) // function SaveHandler() { if ( ! jQuery ) throw new Error("jQuery required for this class"); var callptr = 1; var domobject = 2; var jqueryobj = 3; var handlers = []; // Exports addSaveHandler function this.addSaveHandler = function(handler) { switch ( typeof(handler)) { case "function" : handlers.push({ type: callptr, item: handler }); break; case "object" : { // DOM Object if ( handler.hasOwnProperty('tagName')) { handlers.push({ type: domobject, item: handler }); break; } // jQuery object if (( handler instanceof jQuery ) && ( !! handler.has("*").length )) { handlers.push({ type: jqueryobj, item: handler }); break; } } default : console.error("Unsupported type of handler - supported only callback, dom object or jQuery object"); } } // Connect to Window add base handler $(window).bind('keydown', function(event) { if ( event.ctrlKey || event.metaKey ) { switch ( String.fromCharCode(event.which).toLowerCase()) { case 's' : { // CTRL+S for ( var i=0 ; i<handlers.length ; i++ ) { switch ( handlers[i].type ) { case callptr : $i.item.call(this); case domobject : $(handlers[i].item).click(); case jqueryobj : handlers[i].item.click(); } } event.preventDefault(); return false; } } } return true; }); }
works/programmer/js/jquery-save-handler.txt · Последнее изменение: 2018/12/15 17:18 — 127.0.0.1