All pastes #1202367 Raw Edit

Untitled

public javascript v1 · immutable
#1202367 ·published 2008-09-14 06:30 UTC
rendered paste body
    /**javascript console***/    function LOG(msg) {      var lg = Components.classes["@mozilla.org/consoleservice;1"].getService(Components.interfaces.nsIConsoleService);      lg.logStringMessage(msg);         }    var prefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("extensions.whimarchivebackup.");    var jsScriptLoader = Components.classes["@mozilla.org/moz/jssubscript-loader;1"].getService(Components.interfaces.mozIJSSubScriptLoader);           // getById    function $i(id, d) {       return d.getElementById(id);    }    // xpath unordered nodes    function $xu(p, d) {       var i, r = [], x = d.evaluate(p, d, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);       while(i=x.iterateNext()) r.push(i);     return r;    }    // xpath ordered nodes    function $xo(p, d) {       var i, r = [], x = d.evaluate(p, d, null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null);       while(i=x.iterateNext()) r.push(i);       return r;    }    // xpath single first node    function $xf(p, d) {       return d.evaluate(p, d, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;    }    // xpath single any node    function $xa(p, d) {       return d.evaluate(p, d, null, XPathResult.ANY_UNORDERED_NODE_TYPE, null).singleNodeValue;    }    // create Element    function $ec(type, attributes){       var node = document.createElement(type);       for (var attr in attributes) if (attributes.hasOwnProperty(attr)){          node.setAttribute(attr, attributes[attr]);       }       return node;    }    // delete Element    function $ed(element) {       element.parentNode.removeChild(element);    }    // insert element after    function $ea(newNode, node) {       return node.parentNode.insertBefore(newNode, node.nextSibling);    }    // insert element before    function $eb(newNode, node) {       return node.parentNode.insertBefore(newNode, node);    }    // make element first child of par    function $ef(newNode, par) {       return par.insertBefore(newNode, par.firstChild);    }    // make element last child of par    function $el(newNode, par) {       return par.appendChild(newNode);    }    function loadS(eT, iCheck){       var whimLink = $xf('//div[@id="left"]//a[contains(@href, "//whirlpool.net.au/whim/")]', eT);       var whimpluslink = eT.createElement('a');       whimpluslink.style.position='absolute';       whimpluslink.style.display='inline';       whimpluslink.style.padding='0 8px';       whimpluslink.textContent='+';       whimpluslink.href='#';       $ea(whimpluslink, whimLink);              whimpluslink.addEventListener("click", function (event) {          event.preventDefault();          alert('asd');              }, false);              /*if(!iCheck){                               }*/           }    getBrowser().addEventListener("DOMContentLoaded", function (event) {       var eT = event.target;       if(!eT.defaultView.frameElement){             LOG("yep ");          var iHazAbrowza = this;          var wpIframe = $i('wpHiddenIframe', document);          var iCheck = true;          if(eT.URL.indexOf('whirlpool.net.au')>-1){                       if(!wpIframe){                             var iContainer = document.createElement('vbox');                iContainer.id="wpHiddenIframeContainer";                iContainer.hidden="false";                iContainer.height="0";                                var hidI = document.createElement('iframe');                hidI.id="wpHiddenIframe";                hidI.hidden="false";                hidI.height="0";                      hidI.name="false";                hidI.src="";                hidI.type="content";                hidI.addEventListener("DOMContentLoaded", function (e) {                   LOG("hidI DOMContentLoaded ");                   var doc = e.originalTarget;                   var url = doc.location.href;                   if (e.originalTarget.nodeName == "#document") {                      LOG("[DF] URL = "+url+"\n");                      //var text = doc.evaluate("/html/body/",doc,null,XPathResult.STRING_TYPE,null).stringValue;                      //LOG("[DF] TEXT in /html/body/ = "+text+"\n");                   }                }, true);                                            $el(hidI, iContainer);                $el(iContainer, iHazAbrowza);                                alert(hidI); //[object XULElement]                alert(hidI.nodeName); // browser or iframe                alert(hidI.id); // id of element                                hidI.webNavigation.loadURI("http://whirlpool.net.au/whim/?action=archive",Components.interfaces.nsIWebNavigation,null,null,null);                iCheck = false;                          }                       LOG('whirlpool');             loadS(eT, iCheck);                    }          else{                       var num = iHazAbrowza.browsers.length;             var removeI = true;             for (var i = 0; i < num; i++) {                var b = iHazAbrowza.getBrowserAtIndex(i);                                if(b.currentURI.spec.match(/whirlpool.net.au/)){                                   removeI = false;                                   }                         }             if(removeI && wpIframe){                             $ed(wpIframe);                          }                    }                 }           }, false);