Käyttäjä:Str4nd/tabbedpages.js

Wikipediasta
Siirry navigaatioon Siirry hakuun

Huomautus: Selaimen välimuisti pitää tyhjentää asetusten tallentamisen jälkeen, jotta muutokset tulisivat voimaan.

  • Firefox ja Safari: Napsauta Shift-näppäin pohjassa Päivitä, tai paina Ctrl-F5 tai Ctrl-R (⌘-R Macilla)
  • Google Chrome: Paina Ctrl-Shift-R (⌘-Shift-R Macilla)
  • Internet Explorer ja Edge: Napsauta Ctrl-näppäin pohjassa Päivitä tai paina Ctrl-F5
  • Opera: Paina Ctrl-F5.
function tabbedpages() {
  var tbform = document.getElementById('tabbedpages');
  if (!tbform || !document.createElement) {
    return;
  }
  if (tbform.nodeName.toLowerCase() == 'a') {
    return; // Occasional IE problem
  }
  tbform.className = tbform.className + 'jstbs';
  var sections = [];
  var children = tbform.childNodes;
  var seci = 0;
  for (var i = 0; i < children.length; i++) {
    if (children[i].nodeName.toLowerCase() == 'div') {
      children[i].id = 'tbsection-' + seci;
      children[i].className = 'tbsection';
      if (is_opera || is_khtml) {
        children[i].className = 'tbsection operatbsection';
      }
      var ps = children[i].getElementsByTagName('p');
      sections[seci] = {};
      ps[0].className = 'mainP';
      if (ps[0] && ps[0].firstChild.nodeValue) {
        sections[seci].text = ps[0].firstChild.nodeValue;
      } else {
        sections[seci].text = '# ' + seci;
      }
      sections[seci].secid = children[i].id;
      sections[seci].css = ps[0].getAttribute('style');
      seci++;
      if (sections.length != 1) {
        children[i].style.display = 'none';
      } else {
        var selectedid = children[i].id;
      }
    }
  }
  var toc = document.createElement('ul');
  toc.id = 'tbtoc';
  toc.selectedid = selectedid;
  for (i = 0; i < sections.length; i++) {
    var li = document.createElement('li');
    li.setAttribute('style', sections[i].css);
    li.style.display = 'block';
    if (i === 0) {
      li.className = 'selected';
    }
    var a = document.createElement('a');
    a.href = '#' + sections[i].secid;
    a.onmousedown = a.onclick = uncoverdiv;
    a.appendChild(document.createTextNode(sections[i].text));
    a.secid = sections[i].secid;
    li.appendChild(a);
    toc.appendChild(li);
  }
  tbform.parentNode.insertBefore(toc, tbform.parentNode.childNodes[0]);
}
 
function uncoverdiv() {
  var oldsecid = this.parentNode.parentNode.selectedid;
  var newsec = document.getElementById(this.secid);
  if (oldsecid != this.secid) {
    var ul = document.getElementById('tbtoc');
    document.getElementById(oldsecid).style.display = 'none';
    newsec.style.display = 'block';
    ul.selectedid = this.secid;
    var lis = ul.getElementsByTagName('li');
    for (var i = 0; i< lis.length; i++) {
      lis[i].className = '';
    }
    this.parentNode.className = 'selected';
  }
  return false;
}
 
hookEvent("load", tabbedpages);