Страницы: 1
Необходимо определить время загрузки страницы.
Я понял, что надо действовать через addProgressListener - на onStateChange ловить начало загрузки STATE_START, а где-то в конце ловить конечное время и вычитать начальное. Все бы замечательно, но после начала загрузки необходимо сохранить время (чтобы потом вычесть), и я решил сохранять его на вкладках (слава богу фреймы ловить не надо). Нашел функции - setTabValue \ getTabValue, однако проблема определить какая вкладка принадлежит запросу идущему в данный момент в addProgressListener - onStateChange. Очень нехотелось бы каждому браузеру добавлять ProgressListener, может быть можно как-то попроще ? Или вообще без ProgressListener ?
Отсутствует
Определяю так:
onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus) { // begin loading document const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener; if ((aStateFlags & nsIWebProgressListener.STATE_START) && (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK)) { var browser = null; // search for browser if (gBrowser.selectedBrowser.contentWindow == aWebProgress.DOMWindow) { // active browser browser = gBrowser.selectedBrowser; } else { // bruteforce browsers for (var i = 0; i < gBrowser.browsers.length; i++) { if (aWebProgress.DOMWindow == gBrowser.browsers[i].contentWindow) { browser = gBrowser.browsers[i]; break; } } } if (browser != null) { // search browser tab for (var i = 0; i < gBrowser.mTabContainer.childNodes.length; i++) { if (gBrowser.getBrowserForTab(gBrowser.mTabContainer.childNodes[i]) == browser) { // founded tab var currentTab = gBrowser.mTabContainer.childNodes[i]; break; } } } } }
Отсутствует
Страницы: 1