User:Enterprisey/url-select-revdel.js

Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
$( function () {
    if( mw.config.get( "wgAction" ) === "history" ) {
        mw.loader.using( [ "mediawiki.util" ], function () {
            var param = mw.util.getParamValue( "revdel_select" );
            if( param ) {
                var pageHistory = document.getElementById( "pagehistory" );
                var oldids = param.split( "|" ).filter( Boolean );
                if( oldids.some( function ( oldid ) { return oldid.indexOf( ".." ) >= 0; } ) ) {
                    var allCheckboxes = Array.prototype.slice.call( pageHistory.querySelectorAll( "input[name^='ids[']" ) );
                }
                function expandRange ( range ) {
                    var start = range[0],
                        end = range[1],
                        startCheckbox = pageHistory.querySelector( "input[name='ids["   start   "]']" ),
                        endCheckbox = pageHistory.querySelector( "input[name='ids["   end   "]']" ),
                        startIdx = allCheckboxes.indexOf( startCheckbox ),
                        endIdx = allCheckboxes.indexOf( endCheckbox ),
                        checkboxes = [];
                    if( !startCheckbox ) throw( "No checkbox found for revision "   start );
                    if( !endCheckbox ) throw( "No checkbox found for revision "   end );
                    for( var idx = startIdx, inc = Math.sign( endIdx - startIdx );
                            idx != endIdx; idx  = inc ) {
                        checkboxes.push( allCheckboxes[ idx ] );
                    }
                    checkboxes.push( endCheckbox );
                    return checkboxes;
                }
                var singletonSelectors = [];
                function makeChecked( box ) { box.checked = true; }
                for( var i = 0, n = oldids.length; i < n; i   ) {
                    if( oldids[i].indexOf( ".." ) >= 0 ) {
                        expandRange( oldids[i].split( ".." ) ).forEach( makeChecked );
                    } else {
                        singletonSelectors.push( "input[name='ids["   oldids[i]   "]']" );
                    }
                }
                if( singletonSelectors.length ) {
                    Array.prototype.slice.call( document.querySelectorAll(
                            singletonSelectors.join( "," ) ) ).forEach( makeChecked );
                }
            }
        } );
    }
} );