Javascript-форум (https://javascript.ru/forum/)
-   Я не знаю javascript (https://javascript.ru/forum/ya-ne-znayu-javascript/)
-   -   Получить html из ифрейма (https://javascript.ru/forum/ya-ne-znayu-javascript/3842-poluchit-html-iz-ifrejjma.html)

Roin 28.05.2009 17:09

Получить html из ифрейма
 
Здравствуйте.
Подскажите как можно получить в переменную html загрузившейся страницы в ифрейме.
Например есть
var iframe = (isGecko) ? document.getElementById("frameId") : frames["frameId"];
var iWin = (isGecko) ? iframe.contentWindow : iframe.window; 
var iDoc = (isGecko) ? iframe.contentDocument : iframe.document;

x-yuri 29.05.2009 01:56

а доменное имя такое же?

Roin 29.05.2009 13:20

нет в том то и проблема

ZoNT 29.05.2009 13:23

значит никак.

Roin 30.05.2009 16:24

А если на том же домене ?
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();

Не выводит ((

x-yuri 31.05.2009 03:01

document.write надо очень редко, кроме того это очень распространенный источник ошибок - если его использовать после window.onload, он стирает документ перед тем, как что-то написать

по поводу "как найти iframe'овский document":
iframe.contentDocument ? iframe.contentDocument : iframe.contentWindow.document

Roin 31.05.2009 14:07

Вот такой код пробовал
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);

Не помогает :(
В опере последней тестирую

x-yuri 31.05.2009 14:26

а доменное имя такое же?

Roin 31.05.2009 14:27

Вот так попробовал
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);

Тоже не выходит (

Roin 31.05.2009 14:34

А как тогда проверить получил ли js адрес картинки без document.write ?


Часовой пояс GMT +3, время: 09:17.