|
|
|
| Как сделать так чтобы в окне, состоящем из двух фреймов (фрейм1 и фрейм2) при нажатии в фрейм2 на ссылкуA в фрейм1 изменялся размер шрифта ссылкиB.
Я пробывала в событие onClick для ссылкиА в фрейме2 прописать:
parent.frames[0].links[1].style.fonySize="18pt"
безуспешно. | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 13:24)
| | Попробуйте parent.document....:
http://www.w3schools.com/htmldom/prop_frame_name.asp
bronenos совершенно прав, коллекция фреймов принадлежит объекту window http://www.w3schools.com/htmldom/dom_obj_window.asp | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 13:49)
| | Вот вы знаете я совсем не понимаю конструкцию getElementBiuld и мне кажется может можно сделать как нибудь по другому? | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 14:11)
| | Чего может быть проще - getElementById - взять элемент с идентификатором id . Всего-навсего надо обозвать (присвоить значение атрибуту id ) элемент и "взять" его при помощи getElementById и делать с ним все, что захочется. :-) | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 14:14)
| | Ну я так где то я и думала. Только этого ни в одном учебнике нет. А мне надо чтобы код был обоснован, объяснен, с выкладками из учебников и определениями, а если я напишу, что это вы так рассказывали мне конечно поверят, но по голове не погладят.)
Вот когда буду работать обязательно учту все ваши замечания (они мне очень нравятся! серьезно)
А пока мне надо все по полочкам расскладывать. | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 13:24)
| | во-первых, fontSize, во-вторых.... frames лежит в объекте window, если мне память не изменяет | |
|
|
|
|
|
|
|
для: bronenos
(15.05.2007 в 13:50)
| | В программе без ошибок.
Да нет, так тоже можно. Синонимы.
Дело в том, что пишет, что parent.frames[0].links no has properties. Т.е как я понимаю не имеет свойств.
т.е. например document.link имеет, а эта конструкция нет? | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 14:02)
| | Конструкция изначально неправильна, нужно | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 14:02)
| | попробуйте window.frames[0] | |
|
|
|
|
|
|
|
для: bronenos
(15.05.2007 в 14:05)
| | категоричный ответ window.frames[0] no has properties.
Что делать? | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 14:08)
| | Где располагаете код JavaScript? Нужна часть вашего кода для детального рассмотрения. | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 14:09)
| | Код располагается в фрейме 2, т.е. получается как frames[1]
<html>
<head>
<script language="JavaScript">
function PF()
{ window.frames[0].links[1].style.fontSize="18pt";}
</script>
</head>
<frame target="bottom">
<table width="200" cellspacing="2">
<tr><td HEIGHT="50" bgcolor='#87CEEB'><A href="Myself.htm" onClick="PF()">О себе</A></td></tr>
</table>
</html> | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 14:09)
| | А вот это первый фрейм, тот, где должны изменяться ссылки. В нем находится еще одна функция. Я вот думаю она не мешает той, с которой проблемы?
<html><head>
<title></title>
<SCRIPT language="JavaScript">
function f(link)
{
link.style.fontSize="18pt";
if(f.link) f.link.style.fontSize="11pt";
f.link = link;
}
</SCRIPT>
<table width="100%" CELLSPACING="2">
<tr>
<td align="center" height="30" bgcolor = "87CEEB" title="Главная"><a href="Main.htm" target="bottom" onclick="f(this)">Главная </a></a></td>
<td align="center" height="30" bgcolor = "87CEEB" title="О себе"> <a href="Myself.htm" target="bottom" onclick="f(this)">О себе </a></td></tr>
</table>
</html> | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 14:21)
| | Если я не ошибаюсь, то работа с фреймовой структурой осуществляется следующим образом, сначала создается фреймовая разметка (это отдельный файл - например myframes.htm):
<html>
<frameset cols = "50%, 50%">
<frame src ="index1.htm" />
<frame src ="index2.htm" />
</frameset>
</html>
| далее создаются эти HTML страницы - index1.htm и index2.htm. И вот как раз в этих, созданных страницах, и происходит обработка скриптов JavaScript.
P.S. Из учебника (:-) ) - Содержимое же фрейма - это отдельная HTML страница, которая может находиться где угодно: в другом каталоге, на локальном сервере или на удаленном сервере где-то в сети. | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 14:31)
| | Ага. Родительская страничка имеет код:
<html><head><title></title>
<frameset rows="15%,*" border=0>
<frame src="Menu.html" name="top" scrolling="no">
<frame src="Main.htm" name="bottom">
</frameset>
</html>
Помогите пожалуста!!!
Конечно логично что не работает, но почему??? | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 14:31)
| | Ага, только у меня такого учебника нет.
А что такое содержимое фрейма я знаю. Честное слово! А как реализовать свою Мегазадумку нет.( | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 13:24)
| |
parent.frames [0].document.links [1].style.fontSize = "18pt";
|
| |
|
|
|
|
|
|
|
для: CNT
(15.05.2007 в 14:48)
| | Не-а. Был такой вариант. Но с треском провалился. | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 14:56)
| | Не мог такой вариант, предложенный CNT, провалиться, потому как он правильный:
Ваша фреймовая структура - файл index.html:
<html><head><title></title>
<frameset rows="15%,*" border=0>
<frame src="Menu.html" name="top" scrolling="no">
<frame src="Main.html" name="bottom">
</frameset>
</html>
|
Ваш первый файл HTML - Menu.html - вы забыли в нем проставить теги <body>, впрочем как и в следующем:
<html><head>
<title></title>
<SCRIPT language="JavaScript">
function f(link)
{
link.style.fontSize="18pt";
if(f.link) f.link.style.fontSize="11pt";
f.link = link;
}
</SCRIPT>
</head>
<body>
<table width="100%" CELLSPACING="2">
<tr>
<td align="center" height="30" bgcolor = "87CEEB" title="Главная"><a href="#" target="bottom" onclick="f(this)">Главная </a></a></td>
<td align="center" height="30" bgcolor = "87CEEB" title="О себе"> <a href="#" target="bottom" onclick="f(this)">О себе </a></td></tr>
</table>
</body>
</html>
|
Ваш последний файл Main.html, с проставленными тегами <body>:
<html>
<head>
<script>
function myfunc()
{
parent.frames[0].document.links[0].style.fontSize='18pt';
}
</script>
</head>
<body>
<table width="200" cellspacing="2">
<tr><td HEIGHT="50" bgcolor='#87CEEB'><A href="#" onclick="myfunc();">О себе</A></td></tr>
</table>
</body>
</html>
|
Внимательно проверяйте названия ваших файлов, и, в особенности их расширения.
P.S.Старайтесь писать названия тегов, функций, переменных, событий всегда с маленькой буквы, вам же будет легче и будет меньше ошибок в будуещей реализации проектов. Это не касается правил записи зарезервированных функций языком JavaScript. | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 15:07)
| | Ладно, спасибо БОЛЬШОЕ. Сейчас попробую все переправить. А у вас так заработало? | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 15:12)
| | Так заработало! Проверьте названия файлов Main.html и Menu.html - в одном из них у вас расширение .htm, в другом - .html .
P.S. http://www.intuit.ru - много хороших и полезных книг, как для начального уровня, так и для более продвинутого. | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 15:14)
| | И ведь действительно заработало!) Клево.
Про расширение я знаю. но понимаете тут такая смешная вещь вышла, что в винде расширения *.htm не отображается. Ну например БлаБла.txt пишется, а Main.htm пишется просто как Main.
Наверно это очень глупо, но как изменить расширение я не знаю уже давно. В свойствах полазала. не нашла ничего.
Ага, а сайт этот я знаю. По JS что-то там искала.
Вобщем огромное вам спасибо! | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 17:36)
| | Немного слов про расширения:
1). Ну уж если вам совсем не по душе Front Page, в котором полное имя файла, вместе с расширением выводится на самой закладке открытой страницы и вы можете точно увидить какой у вас файл, с расширением .htm или .html .
2). То можно открыть в блокноте ваш HTML файл и сохранить его из блокнота с произвольным расширением - .htm или .html (а также .js, .php, .css и т.д. по необходимости)
3). А чтобы просмотреть расширения файлов в обычном "Проводнике" нужно в настройках папок "Сервис" - "Свойства папки" закладка "Вид" снять галочку с пункта "Скрывать расширения для зарегистрированных типов файлов" . | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 17:49)
| | Ну вот это я не подумала что из блокнота поменять можно. Даже стыдно.) | |
|
|
|
|
|
|
|
для: ilyaILF
(15.05.2007 в 15:07)
| | Чуть подправлю:
<A href="#" onclick="myfunc(); return false">
|
И добавлю к вашему совету: написание в коде
<a href="URL"> и <body bgcolor="red">
для браузера ничем не отличается от написания
<a href = "URL"> и <body bgcolor = "red">
(т.е. пробелы между именем атрибута и значением его никакой роли не играют)
А вот написание в коде
<script>
function myfunc()
{
parent.frames[0].document.links[0].style.fontSize='18pt';
}
</script>
выполняется браузером значительно медленнее, чем то же самое, но с пробелами:
<script>
function myfunc ()
{
parent.frames [0].document.links [0].style.fontSize = '18pt';
}
</script>
Парсер браузера, разбирая код скрипта, изначально сориентирован на пробелы и переносы строк, как на разделители операторов. Если они (пробелы) будут на своих местах, парсер работает быстрее. | |
|
|
|
|
|
|
|
для: CNT
(15.05.2007 в 15:21)
| | Правда? А мне все время было интересно зачем эти пробелы вставляют.
Зачем return false?
Даже когда C++ изучали не понимала зачем там return 0 в конце. | |
|
|
|
|
|
|
|
для: Полина
(15.05.2007 в 17:43)
| | При клике по ссылке обычно (т.е. по умолчанию) происходит переход страницы на URL, прописанный в атрибуте HREF
В данном случае вам же никуда переходить не надо, клик вам нужен для изменения размера шрифта в другом фрейме.
Вот поэтому инструкцией return false и отменяется "действие по умолчанию".
PS. Если ONCLICK будет написан у, например, ячейки таблицы, вот так: <td onclick="parent.frames [0].document.links [1].style.fontSize = '18pt'">text</td>, то никакого return false не надо - ведь обычно (по умолчанию) при клике по ячейке ничего ведь не происходит, значит, ничего и не надо отменять... | |
|
|
|
|
|
|
|
для: CNT
(15.05.2007 в 18:12)
| | Понятно. Только в моем случае получается, что return false писать не нужно, т.к. у меня не только меняется шрифт в другом фрейме, но и по ссылке осуществляется переход по ссылке в том же фрейме, где ссылка. | |
|
|
|