MediaWiki:Common.js

From limswiki
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)
  • 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. */

var iframeAdjust = function() {
    if (parent && parent.setIframeHeight) {
        parent.setIframeHeight('wiki-iframe', 150);
        parent.setIframeHeight('wiki-iframe', $(document).height());
    }
}
 
$(document).ready(function() {

    $('.iframe-body #saved-book-links a.external').click(function(e) {
        e.preventDefault();
        var href = $(this).attr('href').replace(/^([^\:]*\:\/\/)[^\/]*(.*)$/, '$1' + window.location.hostname + '$2');
        console.log(href);
        window.open(href, 'Saved_book');
    });

  $('.iframe-body a.image').attr('target', '_blank');

  var ph = $('.table-of-contents-placeholder');
  if (ph.length) {
    $.get('/wiki/index.php?title=Contents', function(data) {
      var toc = $(data).find('.table-of-contents-full').attr('class', 'table-of-contents');
      ph.before(toc).remove();
      toc.find('ul ul').hide();
      var title = window.location.search.replace(/^.*title=([^&]*).*$/, "$1");
      var self = toc.find("a[href$='title=" + title + "']");
      self.each(function() { $(this).before($("<strong />").addClass('selflink').text($(this).text())).remove(); });
      toc.find('li:has(ul) > a, li:has(ul) > .selflink').each(function() {
        var span = $('<span class="toggle-button"></span>');
        $(this).addClass('expandable-link').before(span);
        span.click(function() {
          $(this).toggleClass('toggle-button-open');
          $(this).siblings('ul').slideToggle(100);
        });
      });
      toc.find('.selflink').parents('li').each(function() {
        $(this).children('.toggle-button').addClass('toggle-button-open');
        $(this).children('ul').show();
      });
      iframeAdjust();
    });
  }
});

$(window).load(iframeAdjust);