MediaWiki:Common.js: различия между версиями
Материал из melioration.space
Sonys (обсуждение | вклад) |
Sonys (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
mw.hook( 've.activationComplete' ).add( function() { | mw.hook( 've.activationComplete' ).add( function() { | ||
console.log("Назначение"); | console.log("Назначение"); | ||
− | |||
var view =ve.init.target.getSurface().getView(); | var view =ve.init.target.getSurface().getView(); | ||
var doc = view.getDocument(); | var doc = view.getDocument(); | ||
var model = ve.init.target.getSurface().getModel(); | var model = ve.init.target.getSurface().getModel(); | ||
//while editing - only on current node | //while editing - only on current node | ||
− | + | model.on( 'documentUpdate', function () { | |
console.log("Обновление"); | console.log("Обновление"); | ||
try | try | ||
{ | { | ||
− | + | var selection = model.getSelection().getRange(), | |
− | + | node = selection && doc.getBranchNodeFromOffset( selection.start ), | |
+ | originalSelection; | ||
+ | if ( !( node instanceof ve.ce.ContentBranchNode ) ) { | ||
+ | return; | ||
+ | } | ||
+ | //remove spell errors from current node | ||
+ | $( node.$element[0] ).find('.spellError').contents().unwrap(); | ||
+ | //view.surfaceObserver.disable(); | ||
+ | checkSpells( $( node.$element[0] ) ); | ||
+ | //reset selection | ||
+ | selection = model.getSelection().getRange(); | ||
+ | originalSelection = view.getSelectionState( new ve.Range(selection.to, selection.to) ); | ||
+ | |||
+ | setTimeout( function () { | ||
+ | view.showSelectionState( originalSelection ); | ||
+ | } ); | ||
} catch(err){ | } catch(err){ | ||
console.log('Error in Gadget-Rechtschreibpruefung.js:documentUpdate'); | console.log('Error in Gadget-Rechtschreibpruefung.js:documentUpdate'); |
Версия 19:23, 25 декабря 2020
mw.hook( 've.activationComplete' ).add( function() { console.log("Назначение"); var view =ve.init.target.getSurface().getView(); var doc = view.getDocument(); var model = ve.init.target.getSurface().getModel(); //while editing - only on current node model.on( 'documentUpdate', function () { console.log("Обновление"); try { var selection = model.getSelection().getRange(), node = selection && doc.getBranchNodeFromOffset( selection.start ), originalSelection; if ( !( node instanceof ve.ce.ContentBranchNode ) ) { return; } //remove spell errors from current node $( node.$element[0] ).find('.spellError').contents().unwrap(); //view.surfaceObserver.disable(); checkSpells( $( node.$element[0] ) ); //reset selection selection = model.getSelection().getRange(); originalSelection = view.getSelectionState( new ve.Range(selection.to, selection.to) ); setTimeout( function () { view.showSelectionState( originalSelection ); } ); } catch(err){ console.log('Error in Gadget-Rechtschreibpruefung.js:documentUpdate'); console.log(err); } } ); });