48 / 11 / 2
Регистрация: 26.03.2012
Сообщений: 246
1

Изменение страницы загрузки во фрейме

12.05.2012, 13:05. Показов 2592. Ответов 3
Метки нет (Все метки)

Всем привет!

Хочу при наступлении определенного события, изменить страницу загрузки во фрейм. А конечная цель вот такая. Пользователь вводит имя и пароль во фрейм, где два текстовых поля, потом в этот фрейм загружается страница, где указано имя пользователя.

Я пытаюсь с дочернего фрейма достучаться в другой.
Код
parent.frames["Registration"].src="Text.html";
Заранее спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2012, 13:05
Ответы с готовыми решениями:

Можно ли из страницы в одном фрейме обратиться к элементу на странице в другом фрейме?
Имеется фреймсет с двумя фреймами. Можно ли из страницы в одном фрейме обратиться к элементу...

Проверка на открытие страницы во фрейме
Как проверить, открыта ли страница во фрейме? Я пробовал так: function detect() {if...

Изменение отображения элементов на фрейме на другом ПК
Привет форумчане. столкнулся с такой проблемкой: добавил на лист фрейм, на него кинул пару...

Открытие страницы в фрейме через Гугл Хром
Добрый день. Столкнулся с такой проблемой. Представьте есть фреймовая html страница разбитая на два...

3
супермизантроп
Эксперт JS
3935 / 2974 / 691
Регистрация: 18.04.2012
Сообщений: 8,623
12.05.2012, 13:35 2
1. Только MSIE понимает равнозначно и window.frames, и document.frames, все прочие браузеры работают исключительно с window.frames

Код
+------------------------------+ 
|                окно главное  | Вариант 1: Скрипт написан в главном окне.
|  +------------+              | а) к элементу главного окна обращаемся так:   
|  | (и)фрейм   |              |    document.getElementById ('id_элемента')
|  | name="FR1" |              | б) к элементу во фрейме/ифрейме FR1 обращаемся так:
|  |            |              |    window.frames.FR1.document.getElementById ('id_элемента')
|  |            |              | в) к элементу во фрейме/ифрейме FR2 обращаемся так:
|  |            |              |    window.frames.FR2.document.getElementById ('id_элемента')
|  +------------+              |
|                              | Вариант 2: Скрипт написан во фрейме/ифрейме FR1.
|              +------------+  | а) к элементу главного окна обращаемся так: 
|              | (и)фрейм   |  |    top.document.getElementById ('id_элемента')
|              | name="FR2" |  | б) к элементу во фрейме/ифрейме FR1 обращаемся так:
|              |            |  |    document.getElementById ('id_элемента')
|              +------------+  | в) к элементу во фрейме/ифрейме FR2 обращаемся так: 
|                              |    top.frames.FR2.document.getElementById ('id_элемента')
+------------------------------+
Вариант 3: Скрипт написан во фрейме/ифрейме FR2.
а) к элементу главного окна обращаемся так: top.document.getElementById ('id_элемента')
б) к элементу во фрейме/ифрейме FR1 обращаемся так: top.frames.FR1.document.getElementById ('id_элемента')
в) к элементу во фрейме/ифрейме FR2 обращаемся так: document.getElementById ('id_элемента')
Примечания:
1. Везде вместо top можно прописывать parent, что будет более правильным. Ибо вдруг главное окно кто-то поместит внутрь своего фрейма/ифрейма и "самым верхним" (top) окном станет не "главное окно", а это самое новое.
2. name фрейма (ифрейма) можно оформлять строкою в квадратных скобках, т.е., например, так:
window.frames ['FR1'].document.getElementById ('id_элемента')
3. Разумеется, всякую строку можно сделать "составной", т.е. написать можно и так:
window.frames ['FR1'].document.getElementById ('id_элемента')
и так:
window.frames ['F' + 'R' + '1'].document.getElementById ('i' + 'd' + '_' + 'элем' + 'ент' + 'а')

2. Кроме того, обращаться к элементу, который находится во фрейме/ифрейме можно только после полной загрузки фрейма/ифрейма.
Потому фрейм/ифрейм надо снабдить инструкцией, коя обработает событие onload этого фрейма/ифрейма, и либо запустит нужную функцию другом окне (фрейме/ифрейме), либо просто изменит какой-то глобальный флаг, чтобы потом, обращаясь, можно было проверить - загружена ли уже страница во фрейм/ифрейм.

3. Самое главное - всё это работает в браузерах только в одном случае: если все страницы (в главном окне, во всех фреймах/ифреймах) - с одного доменного имени.
Для примера: поместив в ифрейм httр://google.com, вы из других окон/фреймов/ифреймов доступа к сайту Гугля никогда не получите. Работать можно только со своими собственными страницами.

Для работы с "чужими" страницами во фреймах/ифреймах надо использовать небраузерные способы.
Самый простой способ для этого - HTAs - пишете обычный HTML+CSS+Javascript и можете делать всё, что хочется с любыми файлами.
Только вот расширение этого вашего файла должно быть не *.htm или *.html, а *.hta
1
48 / 11 / 2
Регистрация: 26.03.2012
Сообщений: 246
12.05.2012, 13:57  [ТС] 3
Cпасибо большое.
0
0 / 0 / 0
Регистрация: 11.04.2017
Сообщений: 8
11.04.2017, 14:24 4
Огромное тебе спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.04.2017, 14:24
Помогаю со студенческими работами здесь

Проблема открытия локальной страницы во фрейме в FIREFOX
какая-то непонятная проблема - на локальном сервере есть обычная статическая страница...

Изменение Javascript переменной в другом фрейме! Помогите плз!
Есть 2 фрейма top и menu. В меню по клику надо изменить variable из фрейма top. Т.е. в фрейме top...

Как наладить меню, чтобы страницы открывались во фрейме?
Как наладить меню ява-аплета, чтобы страницы открывались во фрейме, а не целиком Вот его кусок с...

Запретить открывать страницы сайта во фрейме на стороннем ресурсе
Такое вообще возможно?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru