Вход

Просмотр полной версии : Странности iframe с атрибутами name / id


Почемучкин
07.11.2011, 20:36
Как присвоить значение атрибуту 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 (http://javascript.ru/tutorial/dom/attributes#dom-atributy).

Почемучкин
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
Ух, спасибо! Кстати, я нашел еще один способ. Но пока не протестировал.
Но способы по ссылкам мне больше нравятся.