Получить html из ифрейма
Здравствуйте.
Подскажите как можно получить в переменную html загрузившейся страницы в ифрейме. Например есть var iframe = (isGecko) ? document.getElementById("frameId") : frames["frameId"]; var iWin = (isGecko) ? iframe.contentWindow : iframe.window; var iDoc = (isGecko) ? iframe.contentDocument : iframe.document; |
а доменное имя такое же?
|
нет в том то и проблема
|
значит никак.
|
А если на том же домене ?
document.write(" <iframe src='' width=500 border=0 height=500 id='frameId' name='frameId' ></iframe>"); function load() { var iframe = (isGecko) ? document.getElementById("frameId") : frames["frameId"]; var iWin = (isGecko) ? iframe.contentWindow : iframe.window; // Это объект window var iDoc = (isGecko) ? iframe.contentDocument : iframe.document; // Это объект document document.write(iDoc.getElementById('captcha_img').src); } window.onLoad=load(); Не выводит (( |
document.write надо очень редко, кроме того это очень распространенный источник ошибок - если его использовать после window.onload, он стирает документ перед тем, как что-то написать
по поводу "как найти iframe'овский document": iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document |
Вот такой код пробовал
var iframe = (document.getElementById("frameId")) ? document.getElementById("frameId") : frames["frameId"]; var iDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document; document.write(iDoc.images[0].src); И такой var iframe = document.getElementById("frameId") ? document.getElementById("frameId") : frames["frameId"]; var iDoc = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document; document.write(iDoc.getElementById('captcha_img').src); Не помогает :( В опере последней тестирую |
а доменное имя такое же?
|
Вот так попробовал
function get(iframe) { var doc=iframe.contentDocument; if (!doc && iframe.contentWindow) doc=iframe.contentWindow.document; if (!doc) doc=window.frames["frameId"].document; if (!doc) return false; if (doc.location=="about:blank") return false; return doc; } var iframe = document.getElementById("frameId"); if(!iframe && frames["frameId"]) iframe = frames["frameId"]; var ifr = get(iframe); document.write(ifr.getElementById('captcha_img').src); //и так document.write(ifr.images[0].src); Тоже не выходит ( |
А как тогда проверить получил ли js адрес картинки без document.write ?
|
Цитата:
Да, такое же. |
function load() { var iframe1 = document.getElementById("if1") ? document.getElementById("if1") : window.frames["if1"]; var doc = iframe1.document; //var s = doc.images[0].src; //document.write(s); for (i=0; i<20; i++) document.write (doc.images[i].src+"<br>"); } window.onLoad=load(); Выводит картинки родителя :( |
а почему у меня работает?
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en"> <head> <title>title</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script type="text/javascript"> window.onload = function() { document.getElementsByTagName('a')[0].onclick = function() { var iframe = document.getElementsByTagName('iframe')[0]; var d = iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document; alert( d.body.firstChild.nodeValue ); return false; } } </script> </head> <body> <iframe src="2.html"></iframe> <a href="#">click</a> </body> </html> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="en"> <head> <title>title</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> </head> <body> asd </body> </html> |
Спасибо огромное, сработало !
Подскажите, как запустить ф-ю описанную в ифрейме. Например, в ифрейме есть форма: <form name="orderForm" id="orderForm" onSubmit="return validateDetails(this)" method="post" action=""> Мне нужно нажать на на кнопку этой формы, но конструкция d.getElementById("orderForm").submit(); Только перезагружает страницу не выполняя обработчика повешенного на форму :( Подскажите пожалуйста как нажать на форму чтобы запустился обработцик повешенный на форму |
а что ты такое с фреймами делаешь?
|
Хочу нажать на кнопку формы во фрейме. Только кнопка та является <input type='image' а на <form повешен обработчик onSubmit="return validateDetails(this)" :(
|
я имею в виду, зачем понадобились фреймы? Что за форма в этом фрейме? (сначала фроде речь шла о другом доменном имени)
|
Часовой пояс GMT +3, время: 03:54. |