Здравствуйте.
Проблема: есть страница, на ней есть ифрейм. В ифрейме загружается страница с того же домена. На этой странице есть элемент(например ссылка), на нее надо нажать, потом загрузиться другая страница в ифрейме(всё на этом же домене) На ней тоже нужно нажать элемент (ссылка либо субмит - неважно) и так несколько переходов.
Одним словом нужно пройтись по цепочке ссылок во ифрейме.
По коду видно. что сначала 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;
}