tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

ruby-dynamic-insertion.js (933B)


      1 window.onload = function() {
      2  // Force a reflow before any changes.
      3  document.body.clientWidth;
      4 
      5  var elems = document.querySelectorAll('[data-insert]');
      6  Array.from(elems).forEach(function(e) {
      7    var parent, ref;
      8    switch (e.dataset.insert) {
      9      case 'start':
     10        parent = e;
     11        ref = e.firstChild;
     12        break;
     13 
     14      case 'end':
     15        parent = e;
     16        ref = null;
     17        break;
     18 
     19      case 'before':
     20        parent = e.parentNode;
     21        ref = e;
     22        break;
     23 
     24      case 'after':
     25        parent = e.parentNode;
     26        ref = e.nextSibling;
     27        break;
     28    }
     29 
     30    var elem, textnode;
     31    if ('text' in e.dataset) {
     32      textnode = document.createTextNode(e.dataset.text);
     33    }
     34    if ('tag' in e.dataset) {
     35      elem = document.createElement(e.dataset.tag);
     36      if (textnode) {
     37        elem.appendChild(textnode);
     38      }
     39    }
     40    parent.insertBefore(elem ? elem : textnode, ref);
     41  });
     42 };