Получить 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:09. |