|
|
|
| Как можно изменить свойство одного фрейма из другого фрейма в JAvaScript?
document.getElementById(frame_name).src - не работает!
|
| |
|
|
|
|
|
|
|
для: mistix
(25.09.2007 в 20:08)
| | parent.frames.frame_name.location = 'http//...'; | |
|
|
|
|
|
|
|
для: RMW
(25.09.2007 в 20:51)
| | не работает.... Дело в том что контент в изменяемом фрейме не меняется! Ссылка грузится а контент не меняется! | |
|
|
|
|
|
|
|
для: mistix
(25.09.2007 в 21:29)
| | Получается обратиться только по порядковому номеру, по имени не получается! С чем это связано?
Работает вот это:
parent.frames[0].location
|
Нужно ли как-то инициализировать фреймы? | |
|
|
|
|
|
|
|
для: mistix
(25.09.2007 в 22:06)
| | я тоже столкнулся с этим, по имени, смирился | |
|
|
|
|
|
|
|
для: mistix
(25.09.2007 в 22:06)
| | Не знаю. Пробуйте так:
parent.frame_name.location
Возможно так правильней.
>Нужно ли как-то инициализировать фреймы?
Не понимаю о чём вы)) | |
|
|
|
|
|
|
|
для: 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 = 'чего-надо';
|
| |
|
|
|
|
|
|
|
для: CNT
(25.09.2007 в 23:33)
| | Не работает:
function setUrlToFrame(frame_name, url) {
eval('parent.frames.'+frame_name+'.document.location.href ="'+url+'"');
}
| Только по номеру получается обратиться.....
в документе фреймы обозначены тегами <iframe></iframe>
Спасибо за ответы, но ничего не работает! | |
|
|
|
|
|
|
|
для: 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;
}
}
}
|
Можно избежать применения подобного дикого кода? | |
|
|
|
|
|
|
|
для: 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 потому, что неизвестно в контексте фрейма или же родительской страницы этот код будет выполняться. | |
|
|
|
|
|
|
|
для: RMW
(26.09.2007 в 00:43)
| | Да с этим проблемы... Надо из родительского документа поменять путь во фрейме и перезагрузить... | |
|
|
|
|
|
|
|
для: mistix
(26.09.2007 в 01:36)
| | Я в том смысле, что если вы код который я привёл сохраните в html файле и запустите его то, он у вас как, вообще, работает? | |
|
|
|
|
|
|
|
для: 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>
|
| |
|
|
|