Страницы: 1
if(this.checked) { this.checked = false; clearInterval(this._checkLinksInterval); this._checkLinksInterval = 0; } else { this.checked = true; var opened = { __proto__: null }; var initialTab = gBrowser.selectedTab; this._checkLinksInterval = setInterval(function() { if(gBrowser.selectedTab != initialTab) { self.doCommand(); // Turn off return; } var links = content.document.getElementsByTagName("a"); for(var i = 0, len = links.length; i < len; ++i) { var h = links[i].href; if(h in opened) continue; opened[h] = true; setTimeout(function(h) { // Pseudo async var tab = gBrowser.addTab(h); setTimeout(function() { gBrowser.removeTab(tab); }, 5000); }, 0, h); } }, 1000); } this.onDestroy = function() { this.checked && this.doCommand(); };
Открывает все ссылки со страницы и запоминает, что было открыто; каждые 1000 мс проверяет, не появилось ли новых ссылок.
Через 5000 мс отрытая вкладка закрывается – даже если ничего не успело загрузиться, проверок нет.
Повторное нажатие на кнопку отключает наблюдение.
После длительной работы может сохранить слишком много ссылок в список уже открытых и упасть с out of memory.
Если нужно было что-то другое – необходимо более развернутое описание.
Прошлое – это локомотив, который тянет за собой будущее. Бывает, что это прошлое вдобавок чужое. Ты едешь спиной вперед и видишь только то, что уже исчезло. А чтобы сойти с поезда, нужен билет. Ты держишь его в руках. Но кому ты его предъявишь?
Виктор Пелевин. Желтая стрела
Отсутствует
а можно сделать чтоб просто все ссылки на странице открывались, после автообновления страницы, чтоб не проверял открытые, а просто открывал и закрывал?.. а то через раз работает, новые ссылки распознает как уже открытые...????
Отсутствует
Страницы: 1