powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript + DOM + iFrame + IE
12 сообщений из 12, страница 1 из 1
JavaScript + DOM + iFrame + IE
    #34129710
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть следующая конструкция:
---- index.html ----
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
function choise() {
       for (i= 0 ;i < main.chckbx.length;i++)
       {
           if (main.chckbx[ 0 ].checked)
           {
              document.getElementById("DivE").style.visibility =
'visible';
              document.getElementById("DivF").style.visibility =
'hidden';
           }
           else
           {
              document.getElementById("DivF").style.visibility =
''visible'';
              document.getElementById("DivE").style.visibility =
''hidden'';
           }
       }
 }

<html> ...
<form name="main">
<div><iframe name="sub" src="somefile.html"></iframe></div></form>
...
</html>

---- somefile.html ----
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<html>....
<form name="main">
<div id="DivE" style="visibility:hidden;"></div>
<div id="DivF" style="visibility:visible;"></div>
</form>
...
</html>

+ 2 radio button для переключения видимости
блоков. Проблема в следующем: если
блоки расположить в главном окне, то
всё работает как часики, но они
находятся в дочернем фрейме. При
манипуляциях с видимостью IE выдаёт ошибку "object required" в
document.getElementById("DivE").style.visibility = 'visible';
Перепробовал уже много чего, включая
main.sub.document..., parent.main.document и т.п. - ничего
не помогает.

Ещё пробовал:
Код: plaintext
1.
2.
3.
var tempEl =
document.getElementById("sub").contentWindow.document.getElementById("DivE");
tempEl.style.visibility = ''visible'';
При чём alert(tempEl) даёт null. А дальше JavaScript Console в FF сказала - Error: tempEl has no
properties ...

Что посоветуете?
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34129787
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Во-первых посоветуем убрать цикл - смысла в нем меньше, чем никакого.
Во-вторых PhoenixNETнаходятся в дочернем фреймеФраза, по-моему, говорит сама за себя - document.frames(0).document.getElementByID...
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34129795
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sub.document.getElementById("DivE")
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34129803
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или так)
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34129839
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyВо-первых посоветуем убрать цикл - смысла в нем меньше, чем никакого.
Во-вторых
Фраза, по-моему, говорит сама за себя - document.frames(0).document.getElementByID...
Да, цикл уберётся, он остался от другого случая ;)
Теперь по сути предложения:
Error: document.frames is not a function
Даже если попробовать добраться через document.frames("sub").document...
Antonariysub.document.getElementById("DivE")
Это тоже уже пробовал, не работает, всё те же ошибки.
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34129854
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PhoenixNET
Это тоже уже пробовал, не работает, всё те же ошибки.
Если быть точнее, то эксепшн вылетает именно при попытке использовать свойство style.visibility, как бы я не пытался обратиться к этому элементу. У меня уже мысли, что возможно нельзя такое делать с дочерними фреймами?
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34130000
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Стиля visibility вроде бы нет, используй style.display = "block" или "none".
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34130023
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AntonariyСтиля visibility вроде бы нет, используй style.display = "block" или "none".
Ну... он точно есть. Как я писал в самом начале, если элементы лежат в родном документе, то style.visibility = "visible"/"hidden" работает на ура, а вот во фрейме...
С style.display тоже пробовал и результат был аналогичным. Хотя попробую ещё. Но по ходу дела видно, что я скорее всего не могу обратиться "правильно" к объекту...
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34130106
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ты дожидаешься, пока страница во фрейме загрузится?
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34130192
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmoты дожидаешься, пока страница во фрейме загрузится?
Ээм.. в принципе нет, об этом я как раз и не подумал, что пытаюсь обратиться к эл-ту, которого ещё не существует. Но мне изначально нужно укзать, какой эл-т нужно показывать, ещё до его создания. Может тогда манипулировать блоками, в которых будет 2 отдельных фрейма?
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34130282
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) попробуй присоединить к загружаемому документу стиль
2) скрывай фрейм на время загрузки страницы - как загрузится, меняй видимость элемента и отображай фрейм.
...
Рейтинг: 0 / 0
JavaScript + DOM + iFrame + IE
    #34130308
PhoenixNET
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maXmo1) попробуй присоединить к загружаемому документу стиль
И работать уже не с элементом, а со стилем? Хм... вариант не плох.
maXmo2) скрывай фрейм на время загрузки страницы - как загрузится, меняй видимость элемента и отображай фрейм.
А вот это не пойдёт, задачи немного другие стоят.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / JavaScript + DOM + iFrame + IE
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]