MediaWiki:Common.js

From NARA
Revision as of 19:26, 2 April 2026 by Dragon 12dk (talk | contribs)
Jump to navigation Jump to search

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)
  • Edge: Hold Ctrl while clicking Refresh, or press Ctrl-F5.
/* Any JavaScript here will be loaded for all users on every page load. */

// Remove whitespace tags using JS. The CSS-based approach seems to work fine on Chromium-based browsers, but not very well on Firefox.
window.onload = function() {
  var paras = document.querySelectorAll('.mw-parser-output p');
  for (var i = 0; i < paras.length; i++) {
    if (paras[i].childNodes[0].nodeName === 'BR') {
      paras[i].remove();
    }
  } 
}

// Force links to open in new tab in embed mode
if (document.body.classList.contains('vc-embed-mode')) {
  document.addEventListener('DOMContentLoaded', function () {
    const links = document.querySelectorAll('a[href]');
    
    links.forEach(link => {
      const href = link.getAttribute('href');

      // Skip anchors and empty links
      if (!href || href.startsWith('#')) return;

      // Make all links open in new tab
      link.setAttribute('target', '_blank');
      link.setAttribute('rel', 'noopener noreferrer');
    });
  });
}

// Report page height to parent when embedded
( function () {
  if ( !window.location.search.includes( 'embed=1' ) ) return;
  function sendHeight() {
    window.parent.postMessage( { embedHeight: document.body.scrollHeight }, '*' );
  }
  mw.hook( 'wikipage.content' ).add( function () {
    sendHeight();
    setTimeout( sendHeight, 500 );
    setTimeout( sendHeight, 1500 );
  } );
} )();