Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: фреймы
 
 автор: mistix   (25.09.2007 в 20:08)   письмо автору
 
 

Как можно изменить свойство одного фрейма из другого фрейма в JAvaScript?

document.getElementById(frame_name).src - не работает!

   
 
 автор: RMW   (25.09.2007 в 20:51)   письмо автору
 
   для: mistix   (25.09.2007 в 20:08)
 

parent.frames.frame_name.location = 'http//...';

   
 
 автор: mistix   (25.09.2007 в 21:29)   письмо автору
 
   для: RMW   (25.09.2007 в 20:51)
 

не работает.... Дело в том что контент в изменяемом фрейме не меняется! Ссылка грузится а контент не меняется!

   
 
 автор: mistix   (25.09.2007 в 22:06)   письмо автору
 
   для: mistix   (25.09.2007 в 21:29)
 

Получается обратиться только по порядковому номеру, по имени не получается! С чем это связано?
Работает вот это:

parent.frames[0].location

Нужно ли как-то инициализировать фреймы?

   
 
 автор: bronenos   (25.09.2007 в 23:08)   письмо автору
 
   для: mistix   (25.09.2007 в 22:06)
 

я тоже столкнулся с этим, по имени, смирился

   
 
 автор: RMW   (25.09.2007 в 23:27)   письмо автору
 
   для: mistix   (25.09.2007 в 22:06)
 

Не знаю. Пробуйте так:
parent.frame_name.location
Возможно так правильней.
>Нужно ли как-то инициализировать фреймы?
Не понимаю о чём вы))

   
 
 автор: CNT   (25.09.2007 в 23:33)   письмо автору
 
   для: mistix   (25.09.2007 в 22:06)
 

Метод document.getElementById работает только в пределах документа и только с ID.

Понимаете?
Конкретный документ и ИМЕННО атрибут ID.

Во фрейме находится ОДИН какой-то конкретный документ, начинающийся с тега <html> и тегом </html> заканчивающийся. Есть у вас в этом "пространстве" (документе) элемент с ID="frame_name"?

Нет, разумеется - нет такого.
Вам надо ваш текущий документ покинуть и подняться на уровень выше - в документ, в котором прописаны фреймы (в том числе и тот, в котором находится ваш документ, и тот, к которому хотите обратиться). Это будет файл-фреймсет (где есть теги <frameset> и <frame>).
Обратиться к этому документу из текущего вы можете, используя parent

И посмотрите теперь - есть ли среди тегов <frame> тот, у которого ID равно вашему "frame_name"?
Нет, разумеется - нет такого.
Есть тег <frame>, у которого прописано ИМЯ, т.е. атрибут NAME="frame_name".
Значится, и обращаться к этому элементу через метод getElementByID никак нельзя - надо не по фамилии, а по имени. А для этого есть другой метод - getElementsByName

Чтобы изменить SRC, надо именно в методе getElementsByName указать имя фрейма и дать команду на изменение SRC.
Т.е.
parent.getElementsByName ['frame_name'].src = 'чего-надо';


Ну или обратиться к свойству location.href документа, загруженному во фрейм с именем frame_name, что корректно надо делать так:
parent.frames.frame_name.document.location.href = 'чего-надо';

   
 
 автор: mistix   (25.09.2007 в 23:56)   письмо автору
 
   для: CNT   (25.09.2007 в 23:33)
 

Не работает:
function setUrlToFrame(frame_name, url) {
eval('parent.frames.'+frame_name+'.document.location.href ="'+url+'"');
}
Только по номеру получается обратиться.....
в документе фреймы обозначены тегами <iframe></iframe>

Спасибо за ответы, но ничего не работает!

   
 
 автор: mistix   (26.09.2007 в 00:08)   письмо автору
 
   для: mistix   (25.09.2007 в 23:56)
 


function setUrlToFrame(frame_name, url) {
for (i = 0; i <= (parent.frames.length - 1); i++) {
  if (parent.frames[i].name == frame_name) {
  parent.frames[i].location = url;
  }
}
}


Можно избежать применения подобного дикого кода?

   
 
 автор: RMW   (26.09.2007 в 00:43)   письмо автору
 
   для: mistix   (26.09.2007 в 00:08)
 

У вас с этим естть проблемы?

<html>
<iframe name="myFrame" src="about:blank"></iframe>
<button onclick="window.frames.myFrame.location = 'http://www.ya.ru';">test</button>
</html>

2.

function setUrlToFrame(frame_name, url) { 
parent.frames[frame_name].location.href = url;
}

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

   
 
 автор: mistix   (26.09.2007 в 01:36)   письмо автору
 
   для: RMW   (26.09.2007 в 00:43)
 

Да с этим проблемы... Надо из родительского документа поменять путь во фрейме и перезагрузить...

   
 
 автор: RMW   (26.09.2007 в 02:03)   письмо автору
 
   для: mistix   (26.09.2007 в 01:36)
 

Я в том смысле, что если вы код который я привёл сохраните в html файле и запустите его то, он у вас как, вообще, работает?

   
 
 автор: RMW   (26.09.2007 в 02:19)   письмо автору
 
   для: RMW   (26.09.2007 в 00:43)
 

Вот этот код
<html>
<iframe name="myFrame" src="about:blank"></iframe>
<button onclick="window.frames.myFrame.location = 'http://www.softtime.ru';">test</button>
</html>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования