diff --git a/modules/ext.linter.edit.js b/modules/ext.linter.edit.js index c79c8936..d3493cb7 100644 --- a/modules/ext.linter.edit.js +++ b/modules/ext.linter.edit.js @@ -1,18 +1,23 @@ $( function () { - var location = mw.config.get( 'wgLinterErrorLocation' ), - // eslint-disable-next-line no-jquery/no-global-selector - $textbox = $( '#wpTextbox1' ); + var location = mw.config.get( 'wgLinterErrorLocation' ); + + function highlightPosition( $textbox ) { + $textbox.trigger( 'focus' ).textSelection( 'setSelection', { start: location[ 0 ], end: location[ 1 ] } ); + $textbox.textSelection( 'scrollToCaretPosition' ); + } if ( location ) { - if ( $textbox.length ) { - $textbox.trigger( 'focus' ).textSelection( 'setSelection', { start: location[ 0 ], end: location[ 1 ] } ); - $textbox.textSelection( 'scrollToCaretPosition' ); - } + // eslint-disable-next-line no-jquery/no-global-selector + highlightPosition( $( '#wpTextbox1' ) ); + mw.hook( 've.wikitextInteractive' ).add( function () { - mw.libs.ve.tempWikitextEditor.$element[ 0 ].setSelectionRange( - location[ 0 ], location[ 1 ] - ); - mw.libs.ve.tempWikitextEditor.focus(); + if ( mw.libs.ve.tempWikitextEditor ) { + highlightPosition( mw.libs.ve.tempWikitextEditor.$element ); + } else { + // VE dummy textbox + // eslint-disable-next-line no-jquery/no-global-selector + highlightPosition( $( '#wpTextbox1' ) ); + } } ); } } );