![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| S.A.P. |
|
||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2664 Регистрация: 11.6.2004 Репутация: 8 Всего: 71 |
Идея такая. Хочу написать скрипт, который при включенни его в страницу встраивает туда IFRAME, который к тому же был бы еще пригоден и для отправки данных формы (его name указывается в target формы).
итак есть 2 варианта:
Работает в Firefox и Опере 9, Осел фрейм встраивает, но при отправке данных, фрейм не видит. При этом на каком - то виндовом SP загружать страницу вобще не хотел. Дальше
Ура! работает везде У кого есть какие идеи? Только пожалуйста, не надо устраивать флейм по поводу того, что фреймы уже в прошлом Это сообщение отредактировал(а) S.A.P. - 17.2.2006, 09:14 |
||||
|
|||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Обращайся к фрейму естественно, и браузеры поймут : )
Или прописываешь id, и обращение, как выше. Но этот вариант может не работать: помнится, он в Опере-7 не хотел идти. Это сообщение отредактировал(а) 12345c - 17.2.2006, 14:02 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| Lixil |
|
|||
|
Unregistered |
Проблема не в этом. Проблема в том, что я пытаюсь создать именованный фрейм, а Сафари а target его не видит и при отправке данных создает новое окно.
Теперь следующая проблема о которой я забыл рассказать. Мне необходимо вытащить текст из этого IFRAME. Во всех браузерах прокатывало null_frame.contentWindow.document.body.innerHTML но только не в Safari |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Проблема, наверное, в том же доступе к фрейму.
Есть document.frames[0] frames[0] имя_фрейма. ... top.frames[...] (может быть, там невзначай сделали все фреймы на одном уровне, и надо parent|top) document.getElementById() Будет ли видеть: document.getElementsByTagName('IFRAME')[0] ? Добавлено @ 14:56 (Мак-а нет, поэтому сам не могу проверить.) -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| Lixil |
|
|||
|
Unregistered |
Еще раз
Сам объект я получаю null_frame, в любом случае. IFRAME выводится, в любом случае. Меня волнует то, что <form target="null_frame"> его не видит (name и id на всякий случай выставлены в "null_frame"). И нужны любые аналоги null_frame.contentWindow.document.body.innerHTML для получения содержимого IFRAME. Все |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
А, т.е. http-запрос его не видит. Есть 2 предположения - бр-р считает, что имена id и name конфликтуют и не понимает ни одного. Сделайте разными. Или есть ограничение на размер фрейма, например, не может быть менее 100x100.
Про второе я так и понял, что нужен доступ к фрейму через JS. Всё, что перечислил - варианты доступа по 2-му типу. Если значение чего-то одного будет не null, то будет доступен и документ. |
|||
|
||||
| Lixil |
|
||||
|
Unregistered |
Попробовал, не работает.
Доступ я получаю. Через getElementById. Причем это точно IFRAME (алертом проверил), не null. Не берется текст из него, грубо говоря innerHTML этого фрейма тем способом, который работает в IE, Opera, Mozilla (null_frame.contentWindow.document.body.innerHTML). |
||||
|
|||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
Сделал пример, и в ie6 он тоже не работает с этим свойством (null_frame.contentWindow.document.body.innerHTML).
Но работает такой доступ:
Или, если не полное содержимое, то alert(top.frames['null_frame'].document.body.innerHTML); Во всяком случае, вот 2 основных разных метода, и первый (document.getElementById("null_frame")) не работал в не очень старых Операх. Это сообщение отредактировал(а) 12345c - 17.2.2006, 20:14 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| Sardar |
|
|||
![]() Бегун ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 6986 Регистрация: 19.4.2002 Где: Нидерланды, Groni ngen Репутация: 78 Всего: 317 |
S.A.P., я так понял проблема в том что форма фрейм не видит, trarget="name" ?
А в чём проблема положить фрейм в вёрстку, не создавать его из скриптов? Работать будет везде. Также попробуй задать ещё и id, идеентичный name. -------------------- Опыт - сын ошибок трудных © А. С. Пушкин Процесс написания своего велосипеда повышает профессиональный уровень программиста. © Opik Оценить мои качества можно тут. |
|||
|
||||
| Ciber SLasH |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1813 Регистрация: 9.11.2004 Где: С.-Петербург Репутация: 24 Всего: 67 |
Первый вопрос не понял, а по второму вот:
|
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |