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.
/*** Allows for one click modification of section headings when viewing a page* add the following line to your .js file to use it:  importScript( 'User:The Evil IP address/hdedit.js' ); // Backlink: [[User:The Evil IP address/hdedit.js]]* @author Janko Hoener (The Evil IP address)* @version 1.1.1*/mw.loader.load('mediawiki.api');window.hdedit = {    openeditform: function ($e) {        hdedit.anchor = $e.attr('id');        hdedit.pagename = mw.config.get('wgPageName');        hdedit.api = new mw.Api();        hdedit.api.get( {                action: 'parse',                page: this.pagename,                prop: 'sections',                format: 'json'        }).done( function (data) {        error = false;        error_msg = '';            $.each(data.parse.sections, function (i, v) {                    if (v.anchor == hdedit.anchor) {                    if (v.index !== '') {                        hdedit.index = v.index;                    }                    else {                    error = true;                    error_msg = 'This section cannot be edited automatically ' +                    'because it uses HTML formatting.';                    }                        if (v.fromtitle && (v.fromtitle != hdedit.pagename)) {                        error = true;                        error_msg += 'This section cannot be edited automatically ' +                        'because it is transcluded from a template.';                        }                        return false;                    }            });            if (error) {            hdedit.seterror(error_msg);            return;            }            if (hdedit.$e) {            hdedit.cancel();        }        hdedit.$e = $e;            hdedit.api.get({                    action: 'parse',                    page: hdedit.pagename,                    section: hdedit.index,                    prop: 'wikitext',                    format: 'json'            }).done( function (obj) {                hdedit.wikitext = obj.parse.wikitext['*'];                hdedit.section_wikitext = hdedit.wikitext.replace(/^(=+)\s*(.+?)\s*\1[\s\S]*$/, '$2');                hdedit.inputsize = hdedit.section_wikitext.length*1.5;                var form = $('<form>').css('display', 'inline').submit(hdedit.save);                var input = $('<input>').attr('id', 'hdedit_input').attr('size', hdedit.inputsize).val(hdedit.section_wikitext);                var button1 = $('<button>').attr('id', 'hdedit_submit').attr('type', 'submit').text('Save');                var button2 = $('<button>').attr('type', 'button').attr('id', 'hdedit_cancel').text('Cancel').click(hdedit.cancel);                $(form).append(input).append(button1).append(button2);                hdedit.form = form;                $e.after(form);                $e.hide();            }            );        }        );    },        save: function () {        hdedit.newheading = $(this).parent().find('input').val();        if (hdedit.newheading == hdedit.section_wikitext) {            return false;        }        $('#hdedit_input, #hdedit_submit, #hdedit_cancel').attr('disabled', 'disabled');        hdedit.api.edit(hdedit.pagename, function () {        return {        action: 'edit',        format: 'json',        section: hdedit.index,        minor: true,        summary: 'Section heading change: ' + hdedit.section_wikitext + ' → ' + hdedit.newheading         + ' using a [[User:The Evil IP address/hdedit|script]]',        text: hdedit.wikitext.replace(/^(=+)(\s*).+?(\s*)\1(\s*)$/m, '$1$2' + hdedit.newheading         + '$3$1$4'),        };        }).then(        function (resp) {        if (resp.result == 'Success') {        window.location.reload();        }        else if (resp.result == 'Failure') {        hdedit.seterror('API returned error code ' + data.error.code + ': ' + data.error.info);        }        else {        hdedit.seterror('Unknown API error.');        }        });        return false;    },        cancel: function () {        hdedit.$e.show();        hdedit.form.remove();    },        seterror: function (msg) {     mw.notify(msg + '\nPlease edit the section heading manually.', {title: 'Error!', autoHide: false});    },        getpref: function (name) {    if (window.hdedit_prefs !== undefined && name in window.hdedit_prefs) {    return window.hdedit_prefs[name];    }    else {    return hdedit.defaultprefs[name];    }    },        defaultprefs: {        'eventToActivate': 'click'    },    };if (mw.config.get('wgNamespaceNumber') >= 0              // disable on special pages    && mw.config.get('wgAction') == 'view'               // activate on view only    && mw.config.get('wgIsProbablyEditable')             // only if the page is probably editable    && !mw.config.get('wgIsMainPage')                    // disable on Main Page    && !('sysop' in mw.config.get('wgRestrictionEdit'))) { // disable on protected pages    // they should be edited manually per https://en.wikipedia.org/w/index.php?oldid=982545683     var eventname = hdedit.getpref('eventToActivate');    var selector = ''; // find the appropriate selector of headings after breaking change https://www.mediawiki.org/wiki/Heading_HTML_changes    var oldmarkup = $('h1 span.mw-headline, h2 span.mw-headline, h3 span.mw-headline, h4 span.mw-headline, h5 span.mw-headline, h6 span.mw-headline'); // still using previous layout    var newmarkup = $('#bodyContent h1, #bodyContent h2, #bodyContent h3, #bodyContent h4, #bodyContent h5, #bodyContent h6'); // using new layout, all h* elements of the page body    if (oldmarkup.length) { // we have the old layout, then load only on those selectors    selector = oldmarkup;    }else if (newmarkup.length) { // we have the new layout, then load only on those selectorsselector = newmarkup;}    $(selector).bind(eventname,     function () {    hdedit.openeditform($(this));    }    );}