%PDF- %PDF-
Direktori : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/demos/ve/ |
Current File : /www/varak.net/wiki.varak.net/extensions/VisualEditor/lib/ve/demos/ve/eventSequencer.html |
<!DOCTYPE html> <html> <!-- /*! * VisualEditor event sequencer page * * @copyright 2011-2016 VisualEditor Team and others; see http://ve.mit-license.org */ --> <head> <meta charset="utf-8"> <style> #good, #bad { min-height: 2em; border: 1px solid red; } </style> <script src="../../lib/jquery/jquery.js"></script> <script src="../../lib/oojs/oojs.jquery.js"></script> <script src="../../lib/unicodejs/unicodejs.js"></script> <script src="../../src/ve.js"></script> <script src="../../src/ve.utils.js"></script> <script src="../../src/ve.EventSequencer.js"></script> <script src="../../src/ce/ve.ce.js"></script> <script> function makeListener( message ) { return function ( e ) { console.log( message + showEventCode( e ) + ' ' + JSON.stringify( document.getElementById( 'good' ).innerHTML ) ); }; }; function onbodyload () { var i, len, eventSequencer, eventName, onEvents = {}, afterEvents = {}, eventNames = ['compositionstart', 'compositionend', 'keydown', 'keyup', 'keypress'], badDiv = document.getElementById( 'bad' ), goodDiv = document.getElementById( 'good' ); for ( i = 0, len = eventNames.length; i < len; i++ ) { eventName = eventNames[i]; onEvents[eventName] = makeListener( 'on ' + eventName ); afterEvents[eventName] = makeListener( 'after ' + eventName ); addSetTimeoutListeners( badDiv, eventName ); } eventSequencer = new ve.EventSequencer( eventNames ) .on( onEvents ) .after( afterEvents ) .attach( $( goodDiv ) ); goodDiv.focus(); } function addSetTimeoutListeners( node, eventName ) { node.addEventListener( eventName, function ( e ) { console.log( eventName + showEventCode( e ) + ': ' + JSON.stringify( node.innerHTML ) ); setTimeout( function () { console.log( 'setTimeout from ' + eventName + showEventCode( e ) + ': ' + JSON.stringify( node.innerHTML ) ); } ); }); } function showEventCode( e ) { return ( e && e.keyCode ) ? '(keyCode=' + e.keyCode + ')' : ''; } </script> </head> <body onload="onbodyload()"> Good (ve.EventSequencer): <div id="good" contenteditable="true"></div> Bad (setTimeout): <div id="bad" contenteditable="true"></div> </body> </html>