Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

173
Visualizações
Cómo mostrar Internet Explorer no compatible en angular sin importar pollyfills

Con IE oficialmente en desuso en Angular 12, quiero mostrar una advertencia estática en mi página para notificar al usuario que cambie a un navegador compatible.

Estoy usando un fragmento simple como este en index.html para agregar una clase css al cuerpo, cuando luego muestra un elemento div.

 <body class="mat-typography"> <script> (function msieversion() { const ua = window.navigator.userAgent; const msie = ua.indexOf('MSIE '); if (msie > 0) { document.body.classList.add('is-internet-explorer'); } })(); </script> <div class="ie">isIE</div> <app-root></app-root> </body>
 .is-internet-explorer { .ie { display: flex; } app-root{ display: none; } } .ie { display: none; }

Pero recibo errores en Internet Explorer, que runtime.js, polyfills.js, vendor.js y main.js no se ejecutarán. Supongo que es debido a la falta de polyfills y la configuración de destino de tsconfig, que estos no se ejecutarán.

ingrese la descripción de la imagen aquí

¿Hay alguna manera de "evitar" que angular inserte o ejecute estas etiquetas de script en primer lugar? Intenté eliminarlos en mi bloque if (msie > 0) , pero eso no funciona.

 setTimeout(() => { const x = document.body.querySelectorAll('script[defer]'); x.forEach((i) => document.body.removeChild(i)); });

Mi objetivo es lograr esto sin tener que ajustar la configuración de polyfill y tsconfig, para mantener el tamaño de compilación al mínimo.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Los errores que se muestran en IE se deben a que los scripts aún se cargan en IE. Si no desea ver los errores en IE, puede cargar una página html no compatible cuando el navegador es IE.

Además, parece que hay algunos problemas en la detección del código IE. Hice algunos cambios, y puede consultar mis pasos a continuación, lo pruebo y funciona bien:

  1. Agregue un archivo unsupported.html en la raíz de la carpeta src . Ejemplo de archivo unsupported.html :

     <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title></title> <meta name="viewport" content="width=device-width, initial-scale=1"> <body> <h1>The app is not supported in IE. Please use other browsers!</h1> </body> </html>
  2. Agregue "src/unsupported.html" en la propiedad de assets angular.json . Por ejemplo:

     "assets": [ "src/favicon.ico", "src/assets", "src/unsupported.html" ],
  3. Detecte el navegador en src/index.html , si es IE, redirija a unsupported.html , si no, renderice <app-root> . El código es como a continuación:

     <!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>MyApp</title> <base href="/"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="icon" type="image/x-icon" href="favicon.ico"> </head> <body> <script type="text/javascript"> var msie = /msie\s|trident/i.test(window.navigator.userAgent); if (msie) { //IE, redirect page window.location.href = "./unsupported.html"; } else { //render app var elem = document.createElement("app-root"); document.body.appendChild(elem); } </script> </body> </html>
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda