MediaWiki:Common.js: Difference between revisions

From Elanthipedia
Jump to navigation Jump to search
(Added wgTitle assignment as requested via TechHelp email)
No edit summary
 
Line 21: Line 21:
$("pre").each(function() {
$("pre").each(function() {
var pre = this;
var pre = this;
let wgTitle = mw.config.get('wgTitle');
var wgTitle = mw.config.get('wgTitle');
if ($(pre).hasClass("select") || wgTitle.includes("(script)"))
if ($(pre).hasClass("select") || wgTitle.includes("(script)"))
{
{

Latest revision as of 11:10, 2 January 2024

// Select all text inside of the element(s) calling this.
jQuery.fn.selectText = function(){
    var doc = document;
    var element = this[0];
    //console.log(this, element);
    if (doc.body.createTextRange) {
        var range = document.body.createTextRange();
        range.moveToElementText(element);
        range.select();
    } else if (window.getSelection) {
        var selection = window.getSelection();        
        var range = document.createRange();
        range.selectNodeContents(element);
        selection.removeAllRanges();
        selection.addRange(range);
    }
};

// Add a Select All link before any pre tags on (script) pages or pre tags with a select class.
$(function () {
    $("pre").each(function() { 
        var pre = this;
        var wgTitle = mw.config.get('wgTitle');
	    if ($(pre).hasClass("select") || wgTitle.includes("(script)"))
        {
            var link = $("<a href='#'>(Select All)</a>").on("click", function(event) { 
                $(pre).selectText();
                event.preventDefault(); 
            }); 
            link.insertBefore(this);}
        }
    );
});