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


Автор: Castro 15.10.2007, 19:05
Что не так с кодом для ФФ:
Код

OpenWindow=window.open('oframmer_1.htm', '', 'height=550,width=300');
var testFrame = parent.OpenWindow.document.getElementById("Iframe1");
        var doc = testFrame.contentDocument;
            if (doc == undefined || doc == null){
                doc = testFrame.contentWindow.document;
            }
        var aaa=doc.getElementById("myID");
        aaa.value=document.form2.txtFld.value;


Вылится на 
Код

var testFrame = parent.OpenWindow.document.getElementById("Iframe1");

В ИЕ всё работает как надо

Автор: SelenIT 15.10.2007, 19:40
1) почему parent?
2) oframmer_1.htm может не успеть загрузиться в попап. Нужно дождаться его готовности, имхо лучше всего начинать работать с его содержимым по его собственному событию onload.

Автор: Castro 15.10.2007, 19:46
1. SelenIT, и без parent тож вообще-то работает, но код не мой вообщем-то.
2. Не совсем понял что Вы имеете ввиду smile 

Автор: SelenIT 15.10.2007, 21:17
Castro,
1. По логике, переменная OpenWindow создается в текущем окне, а не в родительском, так что parent явно не нужен.
2. Вы открываете окно, начинаете грузить в него другой документ, и тут же пытаетесь обратиться к его содержимому (OpenWindow.document.getElementById). Не факт, что страница oframmer_1.htm к этому моменту успела догрузиться до этого места. А в iframe, насколько я понял, грузится еще какой-то третий документ (который doc)... Имхо, надежнее обращаться из самого doc-а в opener по его загрузке, как-нибудь так:
Код

onload = function() { document.getElementById("myID").value=parent.opener.document.form2.txtFld.value; }

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