Поймать ссылку при перезагрузке.
Здравствуйте.
Проблема: есть страница, на ней есть ифрейм. В ифрейме загружается страница с того же домена. На этой странице есть элемент(например ссылка), на нее надо нажать, потом загрузиться другая страница в ифрейме(всё на этом же домене) На ней тоже нужно нажать элемент (ссылка либо субмит - неважно) и так несколько переходов. Одним словом нужно пройтись по цепочке ссылок во ифрейме. По коду видно. что сначала onload ждёт загрузки как страницы так и ифрейма в ней. Потом нажимает на форму в ифрейме, а вот потом нужно дождаться кода появиться форма , нажать кнопочку и нажать субмит, я это сделал в цыкле, т.е проверяется существование некоторых элементов, потом идут два сетинтервала которые ловят сушествование других элементов. и нажимают на них Надо сделать так, что бы цыкла while(true) небыло Иначе с плохим инетом ком подгружается так как долго грузится страница Вот мой код : window.onload = init function init() { document.title= 'Бесплатная футболка - еженедельная акция !' var iframe = document.getElementsByTagName('iframe')[0] var d = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document var w = iframe.contentWindow d.getElementsByTagName('input')['username'].value='rervervrevrv' d.getElementsByTagName('form')[0].submit() /* var _timer1 = setInterval( function() { if (d.getElementsByTagName('input')['account_type'] && d.getElementsByTagName('input')[12]) { d.getElementsByTagName('input')['account_type'].checked = true d.getElementsByTagName('form')[0].submit() clearInterval(_timer1) delete _timer1 } }, 10) */ while (true) { if (d.getElementsByTagName('input')['account_type'] && d.getElementsByTagName('input')[12]) { d.getElementsByTagName('input')['account_type'].checked = true d.getElementsByTagName('form')[0].submit() break } } var _timer1 = setInterval( function() { if (d.getElementsByTagName('span')[0]) { clearInterval(_timer1); delete _timer1 d.getElementsByTagName('a')[5].click() //document.write('hello!'); //document.write(d.body.firstChild.nodeValue ); } }, 20) var _timer2 = setInterval( function() { if (d.getElementsByTagName('input')['code']) { clearInterval(_timer2); delete _timer2 document.body.removeChild(gif) element = document.createElement('div') element.id = 'mydiv' document.body.appendChild(element) document.getElementById('mydiv').innerHTML = 'hello' } }, 10) /* while (true) { if (d.links[5]) { //document.write('hello!'); d.links[5].click() break } } */ /* var _timer2 = setInterval( function() { //if (d.getElementsByTagName('a')[5]) { if( d.getElementsByTagName('a')[5].click()) { clearInterval(_timer2) delete _timer2 } //} }, 10) */ return true; } |
Часовой пояс GMT +3, время: 17:27. |