JS: <iframe />
[HTML]
var frame = document.getElementById("myFrame");
with(frame.document){
writeln("<html><body>");
writeln("<div id='mes'> <\/div>");
writeln("<\/body><\/html>");
}
[/HTML]
И очень мне тах хочется обратиться к DIV'у "mes" фрейма из родительского окна Аля так:
var mess = frame.document.getElementById('mes');
Естественно так не получается. Вопрос: как надо?
[HTML]
writeln("<div id='mes' name='mes'> <\/div>");
[/HTML]
Пока другой причины не видится...
Забыл сказать, что при этом всем, всегда и везде вылезает одна и таже ошибка JS: "Разрешение откланено". Похоже это связано с безопасностью. Не понятно только какого черта я не могу творить со своим фреймом все что захочу :(
Это не глупо. Я один раз пол-дня бился со скриптом, который работал в IE, но в упор не хотел работать в FF. А ларчик просто открывался: в DIV'ах было написано name="..." и FF упорно отказывался реагировать на этот name в getElementById(), пока я не написал везде id="...".
Ну, хорошо, а что пишет alert(frame)? Вообще, назови переменную как-нибудь иначе. Уж очень скользкое название. Как бы оно не оказалось зарезервированным словом.
PS. getElementByName() - не бывает. Есть getElementsByName(). Но это другое. Он возвращает массив элементов.
Цитата:
PS. getElementByName() - не бывает. Есть getElementsByName(). Но это другое. Он возвращает массив элементов.
Это опечатка в посте.
Цитата:
Вообще, назови переменную как-нибудь иначе. Уж очень скользкое название. Как бы оно не оказалось зарезервированным словом.
Проверено - не зарезервированное, но таки переименовал от греха :)
Что-то странное с этим фрэймом. alert(frameMy) до writeln выдает Object, после уже ошибку "Отказано в доступе" (а было "Разрешение откланено"). Даже после того как я приписал close()
[HTML]....
writeln("<\/body><\/html>");
close();
....
alert(frameMy)[/HTML]
Все равно "Отказано в доступе".
Чую, при следующей попытке что-то сделать появится ошибка "Закрыто нафик".
Вообще, загадочно всё это...
Кстати, а ты не внутри функции var frameMy определяешь?
Цитата:
Кстати, а ты не внутри функции var frameMy определяешь?
Нет. Иначе ваще все обваливается
alert(document.frames.lenght) почему-то undefined.
а как ты ифрейм делаешь? покажи код.
var frame = document.getElementById("myFrame");
Что-то типа:
var i=cnsd.createElement('div');
document.getElementById("body").appendChild(i);
Только для начала нужно сам document создать