
Эксперт
  
Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004
Репутация: нет Всего: 0
|
Я понимаю что тут делается но всеровно как мне вывести этот XML который тут возращается. Если можно подскажите де и в какой строчке мне поставить алерт что б вывести результат работы скрипта который прописан в переменной umaxUri: | Код | const umaxObserver = { /** * Catchs any action * * @return void */ observe: function(aSubject, aTopic, aData) {
switch(aTopic){ // timer event case "timer-callback": umaxTalk.getData(); break; // umaxstats event case "umaxstats-status": switch(aData) { // settings was updated case "settings-changed": umaxTalk.getData(); // update timer umaxTalk.timer.cancel(); delay = umaxTalk.pref().getIntPref("umaxstats.update.freq"); umaxTalk.timer.init(umaxObserver, delay, umaxTalk.timer.TYPE_REPEATING_SLACK); break; } break; } } }
/** * Main operation class */ const umaxTalk = { /** * XML HTTP Request object * * @var xmlhttprequest object */ request: null, /** * Umaxlogin stats URI * * @var string */ umaxUri: "http://anton1.limbo/apf/exec/pr.php", //umaxUri: "http://localhost/umax/p", /** * tooltip store variable * * @var DOMElement */ tooltipDOM: null, /** * statusbarpanel store variable * * @var DOMElement */ statusbarpanelDOM: null, /** * Timer object * * @var nsITimer */ timer: null, /** * Performs actions for retrieving data from umaxlogin * * @return void */ getData: function() { alert("ssss"); try { umaxId = umaxTalk.pref().getIntPref("umaxstats.userid"); //statURL = umaxTalk.umaxUri + String(umaxId); statURL = umaxTalk.umaxUri; umaxTalk.request.open("GET", statURL, true); umaxTalk.request.onerror = umaxTalk.requestOnerror; umaxTalk.request.onload = umaxTalk.requestOnload; umaxTalk.request.setRequestHeader("Cache-Control", "no-cache"); umaxTalk.request.setRequestHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)"); umaxTalk.request.send(null); } catch(e) { umaxTalk.removeTooltip(); umaxTalk.messageTooltip("Not connected!"); } }, /** * Return preference service object * * @return nsIPrefBranch */ pref: function() { return Components.classes["@mozilla.org/preferences-service;1"] .getService(Components.interfaces.nsIPrefBranch); }, /** * Checks request status * * @return false */ checkNowCallback: function() { if(umaxTalk.request.status == 200) { try { // umax login do not send xml header // so we make XML with DOM var objDOMParser = new DOMParser(); var objXML = objDOMParser.parseFromString(this.request.responseText, "text/xml"); umaxTalk.statTooltip(); umaxTalk.parseDOM(objXML); umaxTalk.updateStatusBar();
} catch(e) { umaxTalk.removeTooltip(); dump(e); umaxTalk.messageTooltip("Invalid data from umaxlogin.com!"); }
} else { umaxTalk.removeTooltip(); umaxTalk.messageTooltip("Invalid response from umaxlogin.com!"); } }, /** * Parses XML data * * @return void */ parseDOM: function(objXML) { alert(objXML."ffff"); // тут у меня ничего не выводится dateStr = objXML.getElementsByTagName("p")[0].childNodes[0].nodeValue; dateArr = dateStr.match(/([0-9]{4}).([0-9]{2}).([0-9]{2})/); this.date = String(dateArr[3] + '/' + dateArr[2] + '/' + dateArr[1]); timeStr = objXML.getElementsByTagName("p")[0].childNodes[2].nodeValue; timeArr = timeStr.match(/[0-9]{1,2}:[0-9]{1,2}/); this.time = String(timeArr[0]); topStr = objXML.getElementsByTagName("p")[0].childNodes[4].nodeValue; topArr = topStr.match(/[0-9]+/); this.top = String(topArr[0]); this.todaySrchs = objXML.getElementsByTagName("td")[1].firstChild.nodeValue; this.todayClcks = objXML.getElementsByTagName("td")[3].firstChild.nodeValue; this.todayEarn = objXML.getElementsByTagName("td")[5].firstChild.nodeValue; this.ydaySrchs = objXML.getElementsByTagName("td")[7].firstChild.nodeValue; this.ydayClcks = objXML.getElementsByTagName("td")[9].firstChild.nodeValue; this.ydayEarn = objXML.getElementsByTagName("td")[11].firstChild.nodeValue; this.perSrchs = objXML.getElementsByTagName("td")[13].firstChild.nodeValue; this.perClcks = objXML.getElementsByTagName("td")[15].firstChild.nodeValue; this.perEarn = objXML.getElementsByTagName("td")[17].firstChild.nodeValue; }, /** * Updates umaxstats statusbar overlay * * @return void */ updateStatusBar: function() { document.getElementById("umaxstats-date").value = this.date; document.getElementById("umaxstats-today-time").value = this.time; document.getElementById("umaxstats-today-searches").value = this.todaySrchs; document.getElementById("umaxstats-today-clicks").value = this.todayClcks; document.getElementById("umaxstats-today-earn").value = this.todayEarn; document.getElementById("umaxstats-yday-searches").value = this.ydaySrchs; document.getElementById("umaxstats-yday-clicks").value = this.ydayClcks; document.getElementById("umaxstats-yday-earn").value = this.ydayEarn; document.getElementById("umaxstats-period-searches").value = this.perSrchs; document.getElementById("umaxstats-period-clicks").value = this.perClcks; document.getElementById("umaxstats-period-earn").value = this.perEarn; umaxTalk.setStatusBarText(); }, setStatusBarText: function() { var sbValue = ''; var sbValueType = umaxTalk.pref().getIntPref("umaxstats.sb.value.type"); switch (sbValueType) { case 1: // Position in top sbValue = this.top; break; case 2: // Today's Searches/Clicks/Income sbValue = this.todaySrchs + '/' + this.todayClcks + '/' + this.todayEarn; break; case 3: // Only today's searches sbValue = this.todaySrchs; break; case 4: // Only today's clicks sbValue = this.todayClcks; break; case 5: // Only today's income sbValue = this.todayEarn; break; } document.getElementById("umaxstats-top").value = sbValue; if (1 != sbValueType) { document.getElementById("top-today").value = 'Today (' + this.top + ')'; } else { document.getElementById("top-today").value = 'Today'; } }, /** * Removes current tooltip from XUL statusbarpanel element * * @return void */ removeTooltip: function() { umaxTalk.statusbarpanelDOM.removeChild(document.getElementById("umaxstats-tooltip")); }, /** * Appends statistic tooltip to XUL statusbarpanel element * * @return void */ statTooltip: function() { umaxTalk.removeTooltip(); umaxTalk.statusbarpanelDOM.appendChild(umaxTalk.tooltipDOM); }, /** * Appends message tooltip to XUL statusbarpanel element * * @return void */ messageTooltip: function(message) { document.getElementById("umaxstats-top").value = 'n/a'; tooltip = document.createElement("tooltip"); tooltip.setAttribute("id", "umaxstats-tooltip"); tooltip.setAttribute("noautohide", "true"); tooltip.setAttribute("orient", "horizontal"); label = document.createElement("label"); label.setAttribute("value", String(message)); tooltip.appendChild(label);
statusbarpanel = document.getElementById("umaxstats-status"); statusbarpanel.appendChild(tooltip); }, /** * Initiates umaxstats object * * @return void */ start: function() { umaxTalk.tooltipDOM = document.getElementById("umaxstats-tooltip"); umaxTalk.statusbarpanelDOM = document.getElementById("umaxstats-status"); umaxTalk.removeTooltip(); umaxTalk.messageTooltip("Starting update..."); umaxTalk.request = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"] .createInstance(Components.interfaces.nsIXMLHttpRequest); umaxTalk.getData(); delay = umaxTalk.pref().getIntPref("umaxstats.update.freq"); umaxTalk.timer = Components.classes["@mozilla.org/timer;1"].createInstance(Components.interfaces.nsITimer); umaxTalk.timer.init(umaxObserver, delay, umaxTalk.timer.TYPE_REPEATING_SLACK); Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService) .addObserver(umaxObserver, "umaxstats-status", false); }, /** * Request's onerror handler * * @return void */ requestOnerror: function() { umaxTalk.removeTooltip(); umaxTalk.messageTooltip("Not connected!"); }, /** * Request's onerror handler * * @return void */ requestOnload: function() { umaxTalk.checkNowCallback(); }, /** * Destroys needed elements * * @return void */ destroy: function() { umaxTalk.timer.cancel(); Components.classes["@mozilla.org/observer-service;1"] .getService(Components.interfaces.nsIObserverService) .removeObserver(umaxObserver, "umaxstats-status"); } }
try { window.addEventListener("load", umaxTalk.start, false); window.addEventListener("unload", umaxTalk.destroy, false); } catch(e) { dump("Initialization error: " + e); }
/** * Context menu functions */
/** * Force update the stats * * @return void */ function us_forceUpdate() { umaxTalk.getData(); }
/** * Opens modal windows (about, settings) * * @param string type of the window * @return void */ function us_openWindow(type){ switch (type) { case 'about': openDialog("chrome://umaxstats/content/umaxstatsAbout.xul", "", "chrome,titlebar,toolbar,centerscreen,modal"); break; case 'settings': var arguments = new Array(umaxObserver); openDialog("chrome://umaxstats/content/umaxstatsSettings.xul", "", "chrome,titlebar,toolbar,centerscreen,modal", arguments); break; } }
/** * Opens URL on new tab * * @param string URL to open * @return void */ function us_openURL(url) { var windowMediatorIID = Components.interfaces.nsIWindowMediator; var windowMediator = Components.classes["@mozilla.org/appshell/window-mediator;1"].getService(windowMediatorIID); var topWin = windowMediator.getMostRecentWindow("navigator:browser"); var browser = topWin.getBrowser(); var tab = browser.addTab(url); browser.selectedTab = tab; }
|
|