Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Прочитать элемент в дочернем фрэйме


Автор: Wolf1994 9.8.2007, 11:40
Два часа мучил Яндекс, но так и не нашёл ответа на свой вопрос.

Есть плавающий фрэйм:
Код

document.getElementsByTagName('iframe')[2]

Хочу получить из него все элементы "DIV".

Сделал:
Код

 var t=document.getElementsByTagName('iframe')[2].document.getElementsByTagName('DIV');
 alert(t.length);

Перепробовал множество вариантов, ничего не получилось.

Как это сделать правильно?

Автор: solenko 9.8.2007, 12:47
Попробуйте посмотреть закрепленную тему "Окна и Фреймы" в этой ветке )
там есть функция, которая получает объект документа фрейма
Код

function getFrameDocument (fram) {
 var d = (fram.contentDocument) ? fram.contentDocument : ((fram.contentWindow) ? fram.contentWindow.document : null);
 return d;
}

Автор: Wolf1994 9.8.2007, 14:36
Код

function getframedoc(f)
{
 return (f.contentDocument)?f.contentDocument:((f.contentWindow)?f.contentWindow.document:null);
}
var f=getframedoc(document.getElementsByTagName('iframe')[2]);
var t=f.getElementsByTagName('DIV');
alert(t.length);

Выдаёт:
Цитата

Error: uncaught exception: Permission denied to get property HTMLDocument.getElementsByTagName

Значит ли это, что прочитать объект дочернего фрейма не возможно?

Добавлено через 5 минут и 49 секунд
Цитата

 return (f.contentDocument)?f.contentDocument:((f.contentWindow)?f.contentWindow.document:null);

Кажется, это возвращает контент фрэйма, а не фрэйм, как объект, к элементам которого можно обратиться стандартным способом.

Автор: Wolf1994 9.8.2007, 14:54
Нет, это объект, но всё равно не получается... Кажется, понял. Дочерний фрэйм содержит страницу другого сайта. Прошу прощения за глупый вопрос.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)