Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Поймать ссылку при перезагрузке. (https://javascript.ru/forum/misc/4045-pojjmat-ssylku-pri-perezagruzke.html)

Roin 17.06.2009 15:30

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