Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   appendTo on IE (https://javascript.ru/forum/jquery/5473-appendto-ie.html)

Koc 17.10.2009 17:46

appendTo on IE
 
// не работает в IE6-8, но работает в FF 3.5.x, GH 3, S 3
$('<link />')
	.attr({type: 'text/css', href: jPopUp.C.CSS_FILE, rel: 'stylesheet', media: 'screen'})
	.appendTo('head');
// работает корректно вроде бы везде
$('head').append('<link type="text/css" rel="stylesheet" href="' + jPopUp.C.CSS_FILE + '" />');

что я делаю не так?

x-yuri 20.10.2009 01:18

дело в том, что в ie есть bug, при добавлении link с помощью innerHTML. Обходиться так:
el.innerHTML = 'text<link type="text/css" rel="stylesheet" href="...css">';

jQuery еще почему-то link в div оборачивает

как добавить link с помощью createElement и атрибутов/свойств я не нашел

prototype этот bug не исправляет, пробовал так
$$('head')[0].insert('<link type="text/css" rel="stylesheet" href="40.css" />');

https://prototype.lighthouseapp.com/...-html-literals

в mootools аналогично
new Element('div').set('html',  '<link type="text/css" rel="stylesheet" href="40.css" />').childNodes.length

выдает 0

Koc 20.10.2009 12:56

то есть баг не мой, а IE и в jQuery не досмотрели?

Вот кстати сегодня кто-то накатал статейку, в которой почти эта же проблема поднята: http://js-php.ru/web-development/jav...-create-in-ie/

x-yuri 21.10.2009 03:20

если ты знаешь, как создать link с помощью createElement и атрибутов/свойств, чтобы он в ie заработал, значит в jQuery не досмотрели

Octane 22.10.2009 20:27

В IE удобнее так:
head.insertAdjacentHTML("beforeEnd", 'text<link rel="stylesheet" type="text/css" href="…" />');


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