Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   обращение в соседний фрейм (https://javascript.ru/forum/misc/13619-obrashhenie-v-sosednijj-frejjm.html)

rose00 06.12.2010 18:03

обращение в соседний фрейм
 
Есть два фрейма: frame1 и frame2. Ткнув в определенное место на первом, нужно изменить во втором картинку и текст, не перезагружая саму страницу.
Пыталась это сделать так:
parent.frame2.document.images[0].scr="html/shop/map2.png";
parent.frame2.document.getElementById('text').value="tratata";

Но ничего не происходит.
Скрипт находится в первом фрейме.
Подозреваю, что ошибка в обращении к соседнему фрейму, но не понимаю, где. Помогите.

ksa 06.12.2010 20:15

rose00, нет такого свойства parent... Есть например parentNode. Но для фрейма это тег FRAMESET...

Я с фреймами даааавно не работал, а ты не утруждал себя тестовым примером... Например у windiw еть коллекция frames - т.ч. возможно к фреймам можно будет обращаться

window.frames[<номер_фрейма>]


Но это нужно еще проверить...

rose00 06.12.2010 20:38

Через коллекцию фреймов все точно так же - без реакции.

monolithed 06.12.2010 20:48

Цитата:

Сообщение от ksa
rose00, нет такого свойства parent... Есть например parentNode

Цитата:

Сообщение от ksa
Я с фреймами даааавно не работал,

А куда же оно делось?
parent - свойство объекта Window
parent == self

Цитата:

Сообщение от rose00
обращение в соседний фрейм

Пример использования:
parent.frames[1] //frames - содержит массив объектов Window (проверьте на length), так можно обратиться в смежный фрейм

есть еще свойство top, слышали о таком : ))?

ksa 06.12.2010 21:09

Цитата:

Сообщение от monolithed
parent - свойство объекта Window

Ясно... :)

rose00 06.12.2010 22:15

monolithed,
alert(parent.length);

Возвращает 2.
parent.frames[1].document.write('fjdh');

Замечательно рисует новую страничку с текстом. Но мне не нужно это, мне нужно изменить картинку и текст. К картинке обращалась и по имени, и по айди, и по коллекции картинок - не реагирует. Я не понимаю, в чем дело.

monolithed 06.12.2010 22:56

index.html:
<!DOCTYPE html>
<html>
	<head></head>
	<body>
		<iframe src="iframe1.html" width="116" height="86" align="left"></iframe>
		<iframe src="iframe2.html" width="116" height="86" align="left"></iframe>
	</body>
</html>



iframe1.html:
<!DOCTYPE html>
<html>
	<head>
		<style type="text/css">
		img {
			width: 90px;
			height: 70px;
		}
		</style>
		<script type="text/javascript">
		window.onload = function(){
			document.getElementsByTagName('img')[0].onclick = function(){
				parent.frames[1].document.getElementsByTagName('img')[0].src = 'https://developer.mozilla.org/skins/mdn/Transitional/img/mdn-logo-compact.png';
			};
		};
		</script>
	</head>
	<body>
		<img src="http://mrdoob.com/files/blog/header.png" alt="" />
	</body>
</html>


iframe2.html:
<!DOCTYPE html>
<html>
	<head>
		<style type="text/css">
		img {
			width: 90px;
			height: 70px;
		}
		</style>
	</head>
	<body>
		<img src="http://javascript.ru/forum/images/ca_serenity/misc/logo.gif" alt="" />
	</body>
</html>

rose00 07.12.2010 00:07

эээм, спасибо.)
<s>но что было в том не так, я все равно не понимаю</s>
Спасибо еще раз.

misterdd 30.01.2013 13:17

Я сделал так:

HTML код главной страницы:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"> /* Обязательно показать браузеру
что применяется фрейм (Frameset) */
<html>
<head>
<title>Название сайта</title/>
<link rel="stylesheet" href="style.css"/>
<meta name="description" content="Описание сайта"/>
<meta name="Keywords" content="Ключевые слова, фразы"/>
<base target="content"/> /* Показывает браузеру куда загружать страницу по ссылке */
</head>
<body>
<div id="container">
<div id="header">
</div>
<div id="menu">
<ul>
<li><a href="">Главная</a></li>
<li><a href="">1 страница</a></li>
<li><a href="">2 страница</a></li>
<li><a href="">3 страница</a></li>
</ul>
</div>
<div id="content">
<iframe src="privet.html" name="content" frameborder="0" height="800px"
width="850px"></iframe>
</div>
<div id="clear">
</div>
<div id="footer">
</div>
</div>

</body>
</html>

HTML код загружаемых по ссылкам страниц:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">

<html>
<head>
<title>Название страницы</title>

<meta name="description" content="Описание">
<meta name="Keywords" content="Ключевые слова, фразы">
<link rel="stylesheet" type="text/css" href="style.css" />
</head>

<body>
<div id="content">
Содержимое страницы
<p><a href="index.html" target="_top"><B>На главную</B></a></p> /* устраняем
недостаток фреймовой структуры. При подаче поисковиком одной из страниц сайта, в которых
нет ссылок на другие страницы, посетитель сможет перейти на главную страницу. */
</div>
<div id="clear">
</div>

</body>
</html>

Код css:

body {
background: #C0C0C0;
color: #000000;
font-family: Trebuchet MS, Arial, Times New Roman;
font-size: 14px;
}

#container {
background: #FFFFFF;
margin: 30px auto;
width: 1000px;
height: 800px;
}

#header {
background-image: url(696.jpg);
width: 1000px;
height: 188px;
}



#menu ul, li {
margin: 0; /* убираем поля */
padding: 0; /* и отступы */
}
#menu {
float: left;
width: 150px; /* ширине меню */
border: 2px #000 solid; /* стили рамки */
padding: 0 3px; /* отступы по бокам */
}
#menu li {
text-align:
margin: 3px 0; /* поля сверху и снизу */
}
#menu a {
display: block; /* делаем ссылки блоками */
color: Black; /* цвет текста ссылок */
background: #99CC99; /* фон */
text-decoration: none; /* отмена подчеркивания */
padding: 8px 5px; /* отступы внутри ссылок */
}
#menu li, a {
zoom:1; /* для IE6 и IE7 */
}
#menu a:hover {
background: #CCFF99; /* фон ссылок при наведении курсора мыши */
}
#content {
float: right;
background: White;
width: 840px;
}
a:visited {
color: Gray;
text-decoration: none; /* отмена подчеркивания */
}
#content p {
text-align: justify;
text-indent: 2em;
margin: 15px;
padding: 0 15px;
}
h4 {
color: Maroon;
text-align: center;
}
h3 {
color: Gray;
text-align: center;
}
#clear {
clear:both;
}

#footer {
background: #838283;
height: 40px;
width: 1000px;
text-align: justify;
text-indent: 1.5em;
margin: 0;
padding: 0 15px;
}

Мой сайт http://misterdd.p.ht

Deff 30.01.2013 13:19

misterdd,
Есть кнопочка
Оберните весь код и добавьте красным в первый тег
[HTML run][/html]


Часовой пояс GMT +3, время: 01:58.