проблема с ифрейм

Vadik(R)

Well-Known Member
12.12.2007
469
0
25
Волгоград
#1
Люди, как нибудь можно писать текст в ифрейм? Пытался сделать что-то вроде такого, но пишет все равно в основной документ. Помогите, если такое возможно
document.all.myiframe.document.write("somtext");
<iframe name="myiframe" ....
 
E

etc

Гость
#2
1 - где док-во того что это не работает?
2 - зачем тут ифрейм?
 

Vadik(R)

Well-Known Member
12.12.2007
469
0
25
Волгоград
#3
1. Можешь и сам проверить.
2. Так надо.
Какая разница работает или нет, я спрашиваю, значит не работает, значит я неправильно пытаюсь обратиться к документу ифрейма. А вот как правильно к нему обратится я и пытаюсь узнать :)
 

Vadik(R)

Well-Known Member
12.12.2007
469
0
25
Волгоград
#5
Код:
<html>
<body>
<script language="javascript">
function myfunc() {
var str="";
str+="<html>\n";
str+="<body>\n";
str+="<script language=\"javascript\">\n";
str+="alert(1);\n";
str+="<\/script>\n";
str+="<\/body>\n";
str+="<\/html>";
document.all.myiframe.document.write(str);
}
</script>
<iframe name="myiframe" width="800" height="800" src="http://www.muzmov.ru/" onload="myfunc();"></iframe>
123
</body>
</html>
Вот, он пишет не в ифрейм, а в сам главный документ :)
 

Vadik(R)

Well-Known Member
12.12.2007
469
0
25
Волгоград
#8
etc, ты не знаешь ответа или просто забил на меня?
Вообще, рассчитываю еще на Вовочку, может он чем поможет.
Сейчас пытался еще исправить последнюю строчку на:
Код:
document.all.myiframe.innerHTML=str;
Но браузер пишет, что "разрешение отклонено". Видимо не получится сделать то, что я хотел :)
 
V

Vovochka

Гость
#9
Вообще, рассчитываю еще на Вовочку, может он чем поможет.
Пасибо, так уж и быть, отпишусь.
Люди, как нибудь можно писать текст в ифрейм? Пытался сделать что-то вроде такого, но пишет все равно в основной документ. Помогите, если такое возможно
Можно, но не все атк безоблачно.
После того, как фрейм (любой документ) загрузился, в него писать нельзя так как он "закрывается".
Чтоб в него что-то записать вам необходимо его открыть.
Код:
<html>
<head>
</head>
<body>
<iframe src='frame.html' name='fr' id='fr'></iframe>
<script>

var frdoc = document.getElementById('fr').contentDocument;
frdoc.open();
frdoc.writeln('<h2>Writed by script</h2>');
frdoc.close();

</script>
</body>
</html>
Это вполне рабочий код в опере и FF.
А теперь о подводных камнях. Это имменно та самая функция open(), которая при вызове отчищает документ.
Вы не сможете дописать, только перезаписать.
При тестировании у себя, я так и не смог получить доступ к содержимому фрейма, может при не локальном доступе и не будет этих ограничений безопасности (возможно лишь для одного и того же домена), но я не уверен.
 

Vadik(R)

Well-Known Member
12.12.2007
469
0
25
Волгоград
#10
Спасибо!
Когда пытался исправить строчку на "document.all.myiframe.innerHTML=str;", скрипт бы работал, если бы я в ифрейме открывал окно того же домена. А так он запретил мне изменять что-либо в том ифрейме. Вовочка, то, что ты написал - прекрасно подходит для Оперы и FF. А для ИЕ работает только иннерХТМЛ. Но всё равно спасибо, узнал для себя что-то новое :)