Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Получить из фрема элемент родителя 
:(
    Опции темы
sysprog
Дата 22.7.2008, 00:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 9.8.2007

Репутация: нет
Всего: нет



Господа, столкнулся с непонятной проблемой под IE.

Есть фрейм, в нем производится операция типа:
Код

function FrameLoad() {
    alert(window.parent.document.getElementById('MyFiles'));
                var el = window.parent.document.getElementById('MyFiles');
                if(el) {

                    var newElem = document.createElement('input');
                    
                    newElem.setAttribute('id', 'objfiles[fileid]');
                    newElem.setAttribute('type', 'hidden');
                    newElem.setAttribute('name', 'objfiles[]');
                    newElem.setAttribute('value', 'fileid');
                    
                    window.parent.document.getElementById('myForm').appendChild(newElem);
        }
    }

Под Мозилой проблем никаких нет.

Под IE Alert отрабатывает отлично! А var el = window.parent.document.getElementById('MyFiles'); выдает ошибку "Недопустимый аргумент". 

Что за беда, ума не приложу! 

Это сообщение отредактировал(а) sysprog - 22.7.2008, 00:39
PM MAIL   Вверх
sysprog
Дата 22.7.2008, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 9.8.2007

Репутация: нет
Всего: нет



Прошу прощения, ошибку выдавал 
Код

window.parent.document.getElementById('myForm').appendChild(newElem);


Причина также пока не известна.
PM MAIL   Вверх
sysprog
Дата 24.7.2008, 02:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 9.8.2007

Репутация: нет
Всего: нет



Проблема, по всей видимости, заключалась в системе безопасности IE. 
Даже при том, что фрейм и родитель находились в одном домене, IE не давал выполнять команду appendChild. Это довольно странно, т.к. другие операции над родительскими объектами вполне проходят, в частности, изменение innerHTML. Также не понятно, как это могли упустить Opera с Mozilla? smile))

Решил довольно просто - перенес метод appendChild в публичный метод родителя, который дергаю из фрейма и передаю необходимый набор параметров.
PM MAIL   Вверх
JSman
Дата 24.7.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



И что за стиль программирования такой... Привыкай собирать в структуры всё=) Даже, если это элементы (ноды). Я не уверен на сто процентов, что у тебя за ошибка (надо видеть мне весь код), но я тебе предлагаю создать в родительском окне объект, который будет себя включать элементы с нужным id, а из фрейма сможешь обратиться к свойству объекта без проблем.
 
Цитата(sysprog @  24.7.2008,  02:49 Найти цитируемый пост)
Проблема, по всей видимости, заключалась в системе безопасности IE. 

Уж, точно не безопасность)
PM ICQ   Вверх
SamDark
Дата 24.7.2008, 13:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Добрый кот
***


Профиль
Группа: Участник
Сообщений: 1424
Регистрация: 25.7.2006
Где: Voronezh

Репутация: 2
Всего: 38



JSman, 
Вообще похоже очень на Crossframe Security.


--------------------
rmcreative.ru — Это жжж неспроста...
yiiframework.ru — О фреймворке Yii на русском.
reggi — здесь я регистрирую домены
PM MAIL WWW GTalk Jabber MSN   Вверх
JSman
Дата 24.7.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 279
Регистрация: 10.7.2006

Репутация: нет
Всего: 4



пусть код покажет
PM ICQ   Вверх
sysprog
Дата 25.7.2008, 16:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 9.8.2007

Репутация: нет
Всего: нет



Код не покажу, т.к. долго его вытаскивать весь, плюс, он уже оптимизирован smile)

Проблему, как я писал, удалось решить...

Идея была в том, что есть фрейм, который загружает файлы, и есть основная форма на базовой странице, в которую передаются из фрейма ids файлов smile \
Т.о. мне нужно писать в окно родителя! smile Но тут еще есть одна проблема, IE позволяет изменять innerHTML у родителя, но даже если я допишу таким образом нужные мне элементы, при submit форма мне возвращает только статические объекты input, которые были сгенерены при загрузке формы. Что бы дописывать в форму элементы, которые должны возвращаться на сервер - необходимо выполнить appendChild для формы, что IE не позволяет делать из фрейма! smile 

Цитата(JSman @  24.7.2008,  10:30 Найти цитируемый пост)
И что за стиль программирования такой... Привыкай собирать в структуры всё=) Даже, если это элементы (ноды).  
 
Какой есть... smile Что имеется ввиду собирать в структуры? Прошу пример! smile

Цитата(JSman @  24.7.2008,  10:30 Найти цитируемый пост)

но я тебе предлагаю создать в родительском окне объект, который будет себя включать элементы с нужным id, а из фрейма сможешь обратиться к свойству объекта без проблем.
 
Спасибо, не то! smile
 
Цитата(JSman @  24.7.2008,  10:30 Найти цитируемый пост)

Уж, точно не безопасность) 


Других причин обнаружить не удалось... народ, обычно на такое грешил в таких случаях ( через Google искал) smile

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0629 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.