Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

MediaWiki:Gadget-quickLinkCardClick.js: Difference between revisions

MediaWiki interface page
Created page with "// quickLinkCardClick.js (function () { // Wait until the DOM is fully loaded document.addEventListener('DOMContentLoaded', function () { document.querySelectorAll('.vh-quick-link-card').forEach(card => { const link = card.querySelector('a'); if (!link) return; card.addEventListener('click', function (e) { // Avoid double-activating if user clicks directly on the <a> if ( e.target.tagName.toLowerCase() === 'a' ||..."
 
mNo edit summary
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
// quickLinkCardClick.js
(function () {
(function () {
   // Wait until the DOM is fully loaded
   if (mw.config.get('wgIsMainPage') !== true) return;
   document.addEventListener('DOMContentLoaded', function () {
 
     document.querySelectorAll('.vh-quick-link-card').forEach(card => {
   mw.hook('wikipage.content').add(function (content) {
     const cards = content[0].querySelectorAll('.vh-quick-link-card');
    cards.forEach(card => {
       const link = card.querySelector('a');
       const link = card.querySelector('a');
       if (!link) return;
       if (!link) return;


       card.addEventListener('click', function (e) {
       card.addEventListener('click', function (e) {
         // Avoid double-activating if user clicks directly on the <a>
         if (e.target.closest('a')) return;
        if (
          e.target.tagName.toLowerCase() === 'a' ||
          e.target.closest('a')
        ) return;
 
         window.location.href = link.href;
         window.location.href = link.href;
       });
       });


      // Accessibility: allow Enter/Space key activation
       card.setAttribute('role', 'link');
       card.setAttribute('role', 'link');
       card.setAttribute('tabindex', '0');
       card.setAttribute('tabindex', '0');

Latest revision as of 04:45, 23 July 2025

(function () {
  if (mw.config.get('wgIsMainPage') !== true) return;

  mw.hook('wikipage.content').add(function (content) {
    const cards = content[0].querySelectorAll('.vh-quick-link-card');
    cards.forEach(card => {
      const link = card.querySelector('a');
      if (!link) return;

      card.addEventListener('click', function (e) {
        if (e.target.closest('a')) return;
        window.location.href = link.href;
      });

      card.setAttribute('role', 'link');
      card.setAttribute('tabindex', '0');

      card.addEventListener('keydown', function (e) {
        if (e.key === 'Enter' || e.key === ' ') {
          e.preventDefault();
          window.location.href = link.href;
        }
      });
    });
  });
})();