none
JavaScript em document.write() - Internet Explorer RRS feed

  • Pergunta

  • Boa tarde.

    Estou criando uma rotina que executa um JavaScript dentro de um document.write():

    document.write('<script type="text/javascript" enableviewstate="false"> OAS_publicidade.OAS_AD(\'' + adunits[ad]['pos'] + '\'); alert(\'teste\')</script>');
    Onde:
      OAS_publicidade.OAS_AD(......) é o método que desejo chamar, vindo de um arquivo js externo ao que está sendo usado na implementação. Este método pode chamar tanto um método JS que está dentro de OAS_publicidade, quanto um outro método (OAS_RICH()) que vem de um endereço externo na WEB. Normalmente é executado o OAS_RICH().

    A solução com document.write() foi adotada pois, devido ao método OAS_RICH não existir no escopo de OAS_publicidade, estava dando erro quando chamava apenas OAS_AD e este tentava por sua vez chamar OAS_RICH. OAS_RICH está no escopo da página, pois foi importado através de uma outra rotina, usando document.write().

    Esta solução funciona apenas no FireFox. no Internet Explorer (qualquer versão) não é executado o código inserido pelo document.write(). Pesquisando na internet encontrei várias alternativas, usando escape nas tags <script> e </script>, transformando as tags em "<"+"script>" e "</"+"script>", mas nenhuma delas resolveu problema. No IE simplesmente não executa, e olhando o código gerado no debugbar fica assim:

    <SCRIPT type=text/javascript enableviewstate="false">
      OAS_publicidade.OAS_AD('Top2'); alert('teste');
    </SCRIPT>

    Alguém poderia me ajudar?

    Obrigado.
    Henery Linck Rosenhaim
    quarta-feira, 30 de setembro de 2009 17:09

Todas as Respostas