Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) .innerHTML não Funciona no IE


iMax

Pergunta

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 por iMax
Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

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 por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

  • 0
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 head

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 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?

Link para o comentário
Compartilhar em outros sites

  • 0

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!

Link para o comentário
Compartilhar em outros sites

  • 0
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 IE

Errado, 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';

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...