javascript - solo - que hacer cuando una persona se atora con su saliva
Element.appendChild() se ahoga en IE (4)
Esto es particular con el elemento "estilo", IE no permite el método appendChild () en él.
Tengo el siguiente javascript:
css = document.createElement(''style'');
css.setAttribute(''type'', ''text/css'');
css_data = document.createTextNode('''');
css.appendChild(css_data);
document.getElementsByTagName("head")[0].appendChild(css);
por alguna razón, solo en IE, se bloquea en "css.appendChild (css_data);" Dando el error: "Llamada inesperada al método o acceso a la propiedad"
¿Que esta pasando?
Intente en su lugar:
var css = document.createElement(''style'');
css.setAttribute(''type'', ''text/css'');
var cssText = '''';
if(css.styleSheet) { // IE does it this way
css.styleSheet.cssText = cssText
} else { // everyone else does it this way
css.appendChild(document.createTextNode(cssText));
}
document.getElementsByTagName("head")[0].appendChild(css);
no se permite appendChild () con HTMLStyleElement en IE
Intenté tu sugerencia, y el contenido del bloque de estilo simplemente nunca se llena. Probé en IE6 e IE7 ... simplemente no parece hacer nada
Aquí está mi código modificado:
function load_content()
{
var d = new Date();
css = document.createElement(''style'');
css.setAttribute(''type'', ''text/css'');
if(css.styleSheet) { css.styleSheet.cssText = ''testing''} //Because IE is evil
else { css_data = document.createTextNode(''''); css.appendChild(css_data); } //And everyone else is cool
document.getElementsByTagName("head")[0].appendChild(css);
new Ajax.PeriodicalUpdater(''content'', ''/%doc_path%?''+d.getTime(),
{
method: ''post'',
frequency: 5,
onSuccess: function(transport) {
new Ajax.Request(''/%css_path%?''+d.getTime(), {
method: ''get'',
onSuccess: function(transport) {
if(css.styleSheet) { css.styleSheet.cssText = transport.responseTex}
else {
var new_css_data = document.createTextNode(transport.responseText);
css.replaceChild(new_css_data, css_data);
css_data = new_css_data;
}
}
});
}
});
}
¿Algunas ideas?