Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Странности iframe с атрибутами name / id (https://javascript.ru/forum/dom-window/22968-strannosti-iframe-s-atributami-name-id.html)

Почемучкин 07.11.2011 20:36

Странности iframe с атрибутами name / id
 
Как присвоить значение атрибуту name у тега iframe?
frm.name = "frame_name";
присваивает значение атрибуту id


Чтобы указать ссылке <A> в каком фрейме открыть сайт, нужно установить атрибут target="frame_name", где frame_name - содержимое атрибута name у iframe.

Но проблема в том, что не получается созданному динамически iframe присвоить атрибут name... Вместо него имя фрейма присваивается атрибуту id
А id игнорируется - для target нужен именно атрибут name, или ссылка откроется не во фрейме, а в новом окне.

trikadin 07.11.2011 20:46

Цитата:

Сообщение от Почемучкин
присваивает значение атрибуту id

А какой браузер себя так ведёт?

Попробуйте добавлять через setAttribute.

Почемучкин 07.11.2011 21:01

IE6, IE8

setAttribute точно так же не работает.

Прикол в том, что атрибут name устанавливать не хочет, но при этом и отказывается использовать id как target.
Вызов
frm.name = "iframe_name"; //то же через setAttribute
приводит либо к тому, что это имя присваивается id, либо вообще игнорируется. Но если id уже установлен, то просто всегда игнорируется.

Буду также очень благодарен за работающий кусок кода.

Почемучкин 08.11.2011 01:17

var ifrm = document.createElement("iframe");
    ifrm.className = "ehjfbjh";
    ifrm.id = "IFRAME_ID";
    ifrm.name = "IFRAME_NAME";
    //ifrm.setAttribute( "name", "IFRAME_NAME");
    ifrm.width  = 300;
    ifrm.height = 100;
    ifrm.src = "http://google.ru/";
    //ifrm.src = "about:blank";
    ifrm.frameBorder = 0;
    document.body.appendChild(ifrm);

Почемучкин 08.11.2011 23:04

Ух, спасибо! Кстати, я нашел еще один способ. Но пока не протестировал.
Но способы по ссылкам мне больше нравятся.


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