iMax Postado Agosto 3, 2010 Denunciar Share Postado Agosto 3, 2010 (editado) estou usando essa função para incluir style no head apos o carregamento (não um arquivo, quero apenas adicionar classs)por que no IE não funciona?Já tentei, essas alternativas q estão ai abaixo como comentarios, alguém pode me ajudar?agradeço desde já a atenção,function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.rel = 'stylesheet'; style.media = 'screen'; //style.setAttribute('media', 'screen'); //style.setAttribute('type','text/css'); style.innerHTML = css; //style.textContent = css; //document.body.insertBefore(style, document.body.firstChild); document.getElementsByTagName("head")[0].appendChild(style); //head.appendChild(style); } addGlobalStyle('.c5 {background-color: red;}'); Editado Agosto 3, 2010 por iMax Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Agosto 3, 2010 Denunciar Share Postado Agosto 3, 2010 (editado) Cara, o IE é louco mesmo. Tenta fazer o seguinte, muda essa var style, que é um método reservado do objeto HTMLElement, para ver o que dá. Já tentou usar o innerHTML em uma div, no IE, para ver se funciona? Editado Agosto 4, 2010 por Rafael Laurindo Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iMax Postado Agosto 4, 2010 Autor Denunciar Share Postado Agosto 4, 2010 Cara, o IE é louco mesmo. Tenta fazer o seguinte, muda essa var style, que é um método reservado do objeto HTMLElement, para ver o que dá. Já tentou usar o innerHTML em uma div, no IE, para ver se funciona?Pois é Rafael, com div funciona, o problema é que preciso criar um <style type="text/css">...conteudo....</style> no headse eu tirar a linha do innerHTML, ele monta o style no head mas sem o conteudo (ai não resolve, mas foi onde conclui q o problema está com o innerHTML no IE, talvez seja por ser no head, talvez tenha alguma outra forma q desconheço...)tentei a sua sugestão sem sucesso, alguma outra sugestão? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Agosto 4, 2010 Denunciar Share Postado Agosto 4, 2010 i aew carinha, bom tenta usar esse cara -> styleSheets, ele recupera o obejto style, ai você pode deixar sua função mais ou menos assim:function addGlobalStyle( css ) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.rel = 'stylesheet'; style.media = 'screen'; head.appendChild( style ); var objStyle = document.styleSheets[0]; if ( typeof( objStyle.insertRule ) != 'undefined' ){ //Firefox objStyle.insertRule( css , 0 ); } else if ( typeof( objStyle.addRule ) != 'undefined' ){ //IE var rules = css.split( '{' ); objStyle.addRule( rules[0] , rules[1].replace( /\}/g , '' ) ); } } addGlobalStyle( '.c5{background-color: red;}' );bom, espero que ajude, abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Agosto 4, 2010 Denunciar Share Postado Agosto 4, 2010 se eu tirar a linha do innerHTML, ele monta o style no head mas sem o conteudo (ai não resolve, mas foi onde conclui q o problema está com o innerHTML no IEErrado, o problema não está no innerHTML, tanto que funciona com uma div como pedi para você testar. O problema é que o IE talvez seja mais rigoroso com a sintaxe do style. Primeiro faça como o Romerito falou, acrescente esta linha style.rel = 'stylesheet'; Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 iMax Postado Agosto 4, 2010 Autor Denunciar Share Postado Agosto 4, 2010 Romerito, cara, você é um gênio !!!Funcionou beleza desse jeito.valeu ao Rafael tb pelo apoio.abç Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Laurindo Postado Agosto 4, 2010 Denunciar Share Postado Agosto 4, 2010 De nada, qualquer coisa posta aí. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
iMax
estou usando essa função para incluir style no head apos o carregamento (não um arquivo, quero apenas adicionar classs)
por que no IE não funciona?
Já tentei, essas alternativas q estão ai abaixo como comentarios, alguém pode me ajudar?
agradeço desde já a atenção,
Editado por iMaxLink para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.