Вход

Просмотр полной версии : Динамический Iframe в IE


win64
03.05.2014, 03:38
Доброго времени!
Мужики, подскажите, куда копать дабы заставить сей код работать в IE:

<script>
var bdy = document.getElementsByTagName("body")[0];
var ifrm = document.createElement("iframe");
bdy.style.padding="1850px";
bdy.style.margin="500px";
bdy.style.overflow="hidden";
ifrm.style.border="0px";
ifrm.style.position="absolute";
ifrm.style.top="0px";
ifrm.style.left="0px";
ifrm.style.zIndex="65564";
ifrm.setAttribute("border", "no" );
ifrm.setAttribute("name", "fcounter");
ifrm.setAttribute("width", "100%");
ifrm.setAttribute("height", "100%");
ifrm.setAttribute("frameBorder", "no");
ifrm.setAttribute("src", "http://javascript.ru");
bdy.appendChild(ifrm);
</script>

Хром, опера, фаер отлично, а вот IE выдергивается, белый фон и все.

jsnb
03.05.2014, 04:30
И в какой версии IE это не работает?

win64
03.05.2014, 13:49
Проверял на 9-й, не работает.

jsnb
03.05.2014, 14:49
Проверял на 9-й, не работает.
Cейчас проверил в 9 на виртуалке - всё работает.
Вот код, который проверял: http://learn.javascript.ru/play/jv72fc
И вот что получилось: http://i.imgur.com/tBPMoce.png
Так же проверил в 7 и 10, тоже работает.

win64
03.05.2014, 16:17
Таки да, хрень какая-то...поставил виртуалу, проверил - работает)А на локальном - фига. Наверное браузер подглючивает. Спасибо)

danik.js
03.05.2014, 16:27
var bdy = document.getElementsByTagName("body")[0];

Вообще-то есть document.body
ifrm.setAttribute("name", "fcounter");

Устанавливать свойства через атрибуты - не есть хорошо.
Пиши ifrm.name = "fcounter";

alex33
03.05.2014, 16:45
Устанавливать свойства через атрибуты - не есть хорошо.
А можете объяснить почему?

danik.js
03.05.2014, 17:59
А можете объяснить почему?
Да хотя бы потому что больше букав ))
Каких-то серьезных различий нет. Если только речь не о булевых атрибутах типа checked, selected и т.д. Если очень интересно, гуглим статьи attributes vs properties

M-ka
05.05.2014, 20:03
alex33,
Некоторые атрибуты, котрые кажутся обыденными не будут работать в большей части ИЕ в привычном виде... потому и не советуется исспользовать... тот же class, его ставить или получать просто через obj.className, а не setAttribute/getAttribute(на инпутах нейм не поставиться через атрибуты в ИЕ, правда не знаю, с каких версий пофиксили)