MediaWiki:Common.js

From The Blockheads Wiki
Revision as of 19:02, 24 October 2024 by FloofyPlasma (talk | contribs) (attempt to improve mobile support)

Note: After publishing, you may have to bypass your browser's cache to see the changes.

  • Firefox / Safari: Hold Shift while clicking Reload, or press either Ctrl-F5 or Ctrl-R (⌘-R on a Mac)
  • Google Chrome: Press Ctrl-Shift-R (⌘-Shift-R on a Mac)
  • Internet Explorer / Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5
  • Opera: Press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

// This will add an [edit intro] link at the top of all pages except preview pages and the main page
// by User:Pile0nades on Wikipedia

addOnloadHook(function () {
  // if this is preview page or generated page, stop
  if(
    document.getElementById("wikiPreview") ||
    document.getElementById("histlegend‎") ||
    document.getElementById("difference‎") ||
    document.getElementById("watchdetails") ||
    document.getElementById("ca-viewsource") ||
    window.location.href.indexOf("/wiki/Special:") != -1
  ) {
    if(window.location.href.indexOf("&action=edit&section=0") != -1) {
      document.getElementById("wpSummary").value = "/* Intro */ ";
    }
    return;
  };
 
  // get the page title
  var pageTitle = wgPageName;
 
  // create div and set innerHTML to link
  var divContainer = document.createElement("div");
  divContainer.innerHTML = '<div class="editsection">[<a href="/w/index.php?title='+pageTitle+'&action=edit&section=0" title="Edit section: '+pageTitle+'">edit intro</a>]</div>';
 
  // insert divContainer into the DOM below the h1
  if(window.location.href.indexOf("&action=edit") == -1) {
    document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);
  }
 
});

$(document).ready(function() {
    function setResponsiveWidths() {
        var element = $('infobox-template'); // Target the class you defined
        if (window.innerWidth <= 768) { // Mobile breakpoint
            element.css('max-width', '100%'); // Set max width for mobile
        } else {
            element.css('max-width', '30%'); // Set max width for desktop
        }
    }

    // Call on page load
    setResponsiveWidths();

    // Call on window resize
    $(window).resize(function() {
        setResponsiveWidths();
    });
});