User:DatRoot/Scripts/PreviewRefs.js

From Wikipedia, the free encyclopedia
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.
/*
PreviewRefs

Automatically adds a references list when previewing a section, so you can see
how they look.
*/

if(wgAction == "edit" || wgAction == "submit") addOnloadHook(function()
{
    var editForm = document.getElementById("editform");
    if(!editForm) return;
    
    var sectionField = editForm.elements["wpSection"];
    if(!sectionField || sectionField.value == "") return;
    
    var refsText = '<hr/>{{reflist|auto=true}}';
    
    var textBox = editForm.elements["wpTextbox1"];
    
    // Remove ref list from source + any trailing newlines
    var text = textBox.value;
    var p = text.indexOf(refsText);
    if(p > -1) textBox.value = text.substr(0, p);
        
    addHandler(editForm.elements["wpPreview"], "click", function() 
    { 
        var text = textBox.value;
        if(text.indexOf('<ref') > -1 && text.indexOf("<references") == -1
            && text.indexOf("{{reflist") == -1)
        {
            textBox.value += refsText; 
        }
    });
    
    // Just to be safe
    addHandler(editForm.elements["wpSave"], "click", function() 
    { 
        textBox.value = textBox.value.replace(refsText, "");
    });
});