User:Loki Laufeyjarson/common.js

From Heroes 3 wiki
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.
mw.loader.using('mediawiki.util').then(function () {
  var cache = Object.create(null);

  function resolveUrl($el) {
    var u = $el.attr('data-audio-url');
    if (u) return u;
    var f = $el.attr('data-audio-file');
    if (!f || /\{\{/.test(f)) return null; 
    return mw.util.getUrl('Special:FilePath/' + f);
  }

  $(document).on('click', '.click-audio', function (e) {
    e.preventDefault();
    var $el = $(this);
    var url = resolveUrl($el);
    if (!url) return;
    var a = cache[url] || (cache[url] = new Audio(url));
    a.currentTime = 0;
    a.play && a.play();
  });

  // Optional: pointer cursor + keyboard
  mw.hook('wikipage.content').add(function ($c) {
    $c.find('.click-audio').css('cursor', 'pointer').attr({ role: 'button', tabindex: 0 });
  });
});