Открыть все ссылки
Здравствуйте!
На странице присутствует около 600 ссылок. Выглядит это так: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <body> <a href="http://01e.ru" target="_blank">http://01e.ru</a><br /> <a href="http://1.auto-marksa30.ru" target="_blank">http://1.auto-marksa30.ru</a><br /> <a href="http://1naraione.ru" target="_blank">http://1naraione.ru</a><br /> <a href="http://1pks.ru" target="_blank">http://1pks.ru</a><br /> <a href="http://1ry.ru" target="_blank">http://1ry.ru</a><br /> <a href="http://1tehnion.ru" target="_blank">http://1tehnion.ru</a><br /> ... Как мне сделать, чтобы javascript собрал все ссылки и перешел по ним? Я пытаюсь сделать так: { var i,l = document.links; for(i = 0 ; i < l.lenght ; i++){ l[i].onClick } } На что выдается ошибка: [error] Unexpected Exception: message -> l is undefined Причем ругается на for(i = 0 ; i < l.lenght ; i++) Что ему надо? З.Ы. Эту функцию я интегрирую в selenium, но так как он полностью на javascript, то думаю не в этом дело. Подскажите пожалуйста кто знает? |
Или я вообще не правильно пишу и такой код не откроет все ссылки на сайте?
|
Разобрался. Сделал. Если кому надо будет:
Selenium.prototype.doAllLinks = function( locate ) { wnd=open(locate, "displayWindow", "width=500,height=400,status=yes,toolbar=yes,menubar=yes"); alert("Find all links and click them"); for (var i = 0; i < wnd.document.links.length; i++) { getTopWin().getBrowser().addTab(wnd.document.links[i]); } } function getTopWin () { var windowManager = Components. classes ['@mozilla.org/appshell/window-mediator;1']. getService(); var windowManagerInterface = windowManager. QueryInterface (Components. interfaces. nsIWindowMediator); var topWindowOfType = windowManagerInterface. getMostRecentWindow ("navigator:browser"); if (topWindowOfType) { return topWindowOfType; } return null; } Вопрос возник: wnd=open(locate, "displayWindow", "width=500,height=400,status=yes,toolbar=yes,menubar=yes"); alert("Find all links and click them"); for (var i = 0; i < wnd.document.links.length; i++) { Если убрать строку alert("Find all links and click them"); То страница не успевает загрузиться и wnd.document.links.length = 0; Есть ли более красивый способ подождать? Читал про setTimeout и setInterval - они не подходят, так как все это управляется под selenium, а селениум некоторые js функции не всегда адекватно воспринимает. |
Часовой пояс GMT +3, время: 03:16. |