Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Открытие двух фреймов по одной ссылке? (https://javascript.ru/forum/dom-window/4800-otkrytie-dvukh-frejjmov-po-odnojj-ssylke.html)

Semen 21.08.2009 14:05

Открытие двух фреймов по одной ссылке?
 
Вот мой вариант, что тут не правильно?
.....// это ссылка, в которой onClick запускает выполнение Load()
<a href="javascript:onClick='Load( )'" onmouseover="this.style.color = '#000000';" onmouseout="this.style.color = '#585858'" title=""><B>Полезные рецепты</b></a>
.....// это сам скрипт Load()
<script language="JavaScript">
function Load( ) {
window.iframe.new.location.href="allrecept.htm";
window.iframe.menu.location.href="index_3.htm";
}
</script>
.....

B~Vladi 21.08.2009 14:44

Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[js]
... ваш код...
[/js]


О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.

Semen 21.08.2009 15:40

Я почитал, подумал и вот что получилось:
.....// Создаю фреймы на странице, разметка страницы осуществляется с помощью таблиц, и фреймы находятся в ячейках таблиц
<iframe id="new" src="new.html" name="new" scrolling="no" frameborder="0"></iframe></td>
<iframe id="menu" src="index_1.html" name="menu" scrolling="no" frameborder="0"></iframe></td>

.....// Код ссылки
<a href="javascript:Load('allrecept.html','index_3.html')" onmouseover="this.style.color = '#000000';" onmouseout="this.style.color = '#585858'" title=""><B>Полезные рецепты</b></a>

.....// Код скрипта фукции Load()
<script language="JavaScript">
function Load(all, ind3) {
parent.new.location.href=all;
parent.menu.location.href=ind3;
}

</script>
Вот, посмотрите, почему неработает?

B~Vladi 21.08.2009 16:20

Если вы задали элементу ID, обращатся к нему нужно через getElementById(), понимаем?

Semen 21.08.2009 16:36

вот так?
function Load(all, ind3) {
var n=document.getElementById(new);
var m=document.getElementById(menu);
parent.n.location.href=all;
parent.m.location.href=ind3;
}

Вообще, я думал без id обойтись (т.е. при создании фрейма я не указывал id), т.к. каждому фрейму присвоил имя: new и menu - и так не получается...?

B~Vladi 21.08.2009 16:59

Вроде как созданному iframe нельзя менять src, но можно сделать так:
function LoadFrame(){
  for(var i=0; i<arguments.length; i++){
    var newFrame=document.createElement('iframe');
    newFrame.id=arguments[i].id;
    newFrame.src=arguments[i].src;
    newFrame.scrolling=false;
    newFrame.frameBorder=false;
    var oldFrame=document.getElementById(arguments[i].id);
    oldFrame.parentNode.replaseChild(oldFrame, newFrame);
  }
}


Тогда ссылка будет примерно такая:

<a href="#" onclick="LoadFrame({id:'new',src:'new.html'},{id:'menu',src:'index_1.html'}); return false;"><B>Полезные рецепты</b></a>


Скрипт не тестил:)

Кста и твои mouse over/out вынеси в css на hover и никогда так больше не делай:nono:


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