/**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);