User:Js/ajaxPreview.js
Note: After saving, you have to bypass your browser's cache to see the changes. Internet Explorer: hold down the Ctrl key and click the Refresh or Reload button. Firefox: hold down the Shift key while clicking Reload (or press Ctrl-Shift-R). Google Chrome and Safari users can just click the Reload button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
window.ajaxPreviewMsg = { emptydiff: 'No changes', difftip: 'shift-click the button to show changes compared to this old version', diff2old: 'comparison to old version', viewtip: 'shift-click the button to update interwiki and categories as well\ (<a href="//en.wikipedia.org/wiki/User:Js/ajaxPreview#Preview" target=_blank>more</a>)' }; function ajaxPreviewButtons(){ var ajaxPreviewPos = window.ajaxPreviewPos || 'right' if( !document.getElementById('wpSave') ){ return; } mw.loader.load( '//en.wikipedia.org/w/index.php?title=User:Js/preview2.js&action=raw&ctype=text/javascript' ); if( ajaxPreviewPos != 'bottom' ){ var previewToolbar = $('<div style="float:'+ajaxPreviewPos+'" />') if ( mw.user.options.get('usebetatoolbar') ) { $('#wikiPreview').after('<div style="width:100%; clear:both" />', previewToolbar) } else { var el = $('#toolbar') if( el.length ) el.prepend(previewToolbar) else $('#editform').before(previewToolbar) } } addBtn(window.ajaxPreviewButton, 'wpPreview', window.ajaxPreviewKey || 'p') if( mw.config.get( 'wgArticleId' ) ) addBtn(window.ajaxDiffButton, 'wpDiff', window.ajaxDiffKey || 'v') function addBtn(name, id, akey){ var $btnOld = $(document.getElementById(id)) if( $btnOld.length === 0 ) return var $btn = $('<input type="button" />') .attr('id', id + 'Live') .attr( 'title', $btnOld.val() + ' (ajax)'); if( ajaxPreviewPos == 'bottom' ){ $btn.val( $btnOld.val() ).insertBefore( $btnOld.val('>') ) }else{ if( !name ){ //extract last word from standard buttons var name = $btnOld.val(); var i = name.lastIndexOf(' ') + 1 name = name.substring(i, i+1).toUpperCase() + name.substring(i+1) } $btn.val(name).css({height:'22px', padding:'0 1px'}).appendTo(previewToolbar) } if( akey ){ //reassign acces key if( $btnOld.attr('accesskey') == akey ) $btnOld.removeAttr('accesskey').updateTooltipAccessKeys() $btn.attr('accesskey', akey).updateTooltipAccessKeys() } } } if( $.inArray(mw.config.get('wgAction'), ['edit', 'submit']) !== -1 && mw.config.get('wgCanonicalNamespace') !== 'Special' ){ mw.loader.using( ['mediawiki.util', 'user.options', 'jquery.textSelection', 'jquery.accessKeyLabel'], function () { $(ajaxPreviewButtons); } ); }