Проблема с ожиданием загрузки станицы у консольного скрипта.
В javascript я сущий новичок и столкнулся со следующей проблемой: я запланировал написать консольный скрипт, который автоматизирует мои действия, в процессе чего загружает различные странички. Однако, мне не удаётся заставить его ожидать их загрузки, что, понятно, необходимо. Сначала, я просто воспользовался циклом и пытался так или иначе приостановить работу скрипта после загрузки страниц:
function checkLoad() { if (!window.onLoad) return setTimeout(checkLoad(), 1000); } do { document.location.replace('http://website.com'); checkLoad() ... } while (arr.length > 0) Мои попытки вызывали либо переполнение стека (как выше), либо пропуск скриптом загрузки страницы. А потом я попытался реализовать это через событие OnLoad: document.location.replace('http://website.com') onLoad = function (){ alert ('here') switch (phase) { ... } } Также без особого успеха: функция не вызывается ни разу. Буду благодарен за совет. |
Цитата:
<!DOCTYPE html> <html> <head> <!-- <script src="http://code.jquery.com/jquery-latest.js"></script> <link rel="stylesheet" type="text/css" href="tmp.css" /> --> <style type="text/css"> </style> <script type="text/javascript"> function test() { alert('Опа!'); }; </script> </head> <body onload='test()'> </body> </html> Таки вызывается! :dance: |
Timon,
засуньте код в функцию и в конце допишите document.onload = имя_функции; без скобок |
Цитата:
|
Цитата:
|
Цитата:
Цитата:
document.location.replace('http://website.com') function main(){ alert ('here') switch (phase) { ... } } window.onload = main; Увы, тоже самое. Страница загружается, а функция не вызывается ни разу. Возможно, при загрузке новой страницы консольный скрипт также прерывается? |
Timon,
Выложите полный скрипт - ведь возможна ошибка в промежуточных действиях - из за которых просто скрипт не работает или разбейте тегами <script type="text/javascript"> Код </script> На минимально рабочие куски и выложите нерабочую часть |
Даже вот такой скрипт
alert ('start') document.location.replace('http://google.com') function main(){ alert ('here') } window.onload = main; запускаемый через консоль firefox или firebug не приводит к запуску функции main. Что интересно, при этом firebug закрывается при загрузке гугла, если не выбрана опция "включить на всех страницах". Самое обидное, что за исключением перехода на новую страницу (казалось бы, такая ерунда), всё остальное мой скрипт выполняет. |
<!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="ru" lang="ru" dir="ltr"> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> </head> <body> <script type="text/javascript"> alert ('start') document.location.replace('http://google.com') function main(){ alert ('here') } window.onload = main; </script> </body> </html> |
Цитата:
|
Часовой пояс GMT +3, время: 09:11. |