¿Por qué falla el código JavaScript en Chrome para Android? Descubierto: ¡Solución en un clic!

¿Pensabas que el sitio web estaba bien y que el código JS era estable como un perro viejo, pero tan pronto como cambiaste la versión del navegador móvil, la página "entró en huelga"?

Lo más escandaloso es que el ordenador funciona normalmente.AndroidPero el teléfono te ignora por completo.

Esto no es una broma, es un problema del navegador que ha estado ocurriendo silenciosamente.

La raíz del problema: no es que lo hayas escrito mal, sino que los tiempos te han abandonado.

¿Por qué falla el código JavaScript en Chrome para Android? Descubierto: ¡Solución en un clic!

De hecho, cuando la mayoría de los desarrolladores ven este fenómeno, su primera reacción es: ¿Hay un error en la sintaxis de JS? ¿No se ha cargado el DOM? ¿O el permiso está bloqueado?

¿El resultado? Ninguno. El verdadero culpable resultó ser esa escritura antigua:

<script language="javascript">

Esta línea de código fue popular hace 20 años.无限, que se puede ver en todos los tutoriales.

Pero en Versión 119 de ChromiumDespués de eso, Google se despidió de esta "gramática antigua": mientras veas language Atributos, el navegador los ignorará selectivamente y ni siquiera se molestará en explicarlos.

Por razones de compatibilidad, Chrome en el escritorio todavía "se ocupa de ello temporalmente"; pero Chrome en el móvil Android es la "vanguardia" y habilitó de inmediato esta estrategia de limpieza.

Así apareció:La computadora funciona bien, pero el teléfono móvil no funciona.El problema.

¿Por qué Android tomó medidas primero?

Algunas personas podrían preguntarse: ¿Por qué se lanzó Chrome para Android primero?

Es muy sencillo, porque el ritmo de actualización de los terminales móviles es más rápido y Google envía la información tan rápido como envía sobres rojos.

2023 de octubre de 10La versión Chrome 119 para Android se ha lanzado por completo a través de Google Play.

Aunque la versión de escritorio también utiliza el kernel Chromium, es habitual "mantenerlo a mano" para evitar que de repente exploten una gran cantidad de sistemas corporativos internos.

Entonces, si todavía estás usando la frase "language=javascript", en los teléfonos Android equivale a escribir un código transparente, que el navegador ignora directamente.

Solución: Hazlo en tres segundos

Afortunadamente, la solución a este problema es increíblemente sencilla. Simplemente reemplaza esta línea:

<script>

O un poco más formalmente:

<script type="text/javascript">

Sólo se necesitan unos segundos para modificarlo y Chrome Android lo ejecutará inmediatamente.

Recuerde, después de la modificaciónForzar actualización de cachéDe lo contrario, es posible que el navegador aún esté leyendo el archivo antiguo. El método también es sencillo:

  • Computadora: Ctrl + F5
  • Teléfono: Configuración → Privacidad → Borrar caché

Una vez actualizado, el código se reactiva en segundos y la página comienza a ejecutarse nuevamente.

En realidad, esto es una "liquidación".

En última instancia, el problema esta vez no es el problema de JS en sí, sinoLa era del código heredado del frontend.

Lo que deben hacer los fabricantes de navegadores es muy claro: limpiar gradualmente la sintaxis obsoleta y obligar a los desarrolladores a actualizar.

Es como una autopista: antes se permitía que triciclos y tractores circularan uno al lado del otro, pero ahora, por razones de seguridad, hay que dejarlos fuera. language="javascript" Ese tractor no debería haber estado en el carril rápido.

¿A qué deben prestar atención los desarrolladores?

Este incidente nos sirve como un recordatorio muy realista:

  1. Los estándares de codificación son realmente importantes El código que crees que "simplemente funciona" puede dejar de funcionar en una determinada versión.

  2. El entorno de prueba debe seguir el ritmo No te limites a publicar en Chrome desde tu computadora. Debes revisarlo en dispositivos móviles y diferentes versiones de navegadores.

  3. Seguir los registros de actualización del navegador Cada vez que se actualiza Chromium, aparecen muchas "Desactivaciones y Eliminaciones". No son solo una decoración, pero arruinarán tu negocio.

Conclusión: Detrás de una línea de código está la evolución tecnológica

Mucha gente se queja de que Google es "poco ético", pero desde una perspectiva más amplia, en realidad se trata de un proceso inevitable que impulsa todo el ecosistema web hacia adelante.

Eliminar viejos atributos y obligar a los desarrolladores a seguir estándares es la iteración de la civilización tecnológica.

Si continuamos siendo compatibles con toda una sintaxis obsoleta, el front-end tarde o temprano se convertirá en una mezcolanza destartalada.

Por lo tanto, cuando reparamos este pequeño agujero, en realidad estamos participando en un "movimiento de limpieza de la civilización tecnológica".

En los próximos años habrá cada vez más trampas similares, y el único antídoto esMantenerse al día con los tiempos y adoptar los estándares.

Resumen final

  • Las computadoras pueden ejecutarlo, pero Android no, porque <script language="javascript"> Obsoleto.
  • Chromium 119 Chrome de Android toma la delantera en omitir language Atributo <script> Bueno.
  • La solución es: utilizar <script><script type="text/javascript">.
  • Después de la modificación, actualice el caché y se restaurará el problema.
  • Los desarrolladores siempre deben prestar atención a las actualizaciones del navegador y desarrollar el hábito de escribir código de manera estandarizada.

Entonces, la próxima vez que te encuentres con un error extraño donde la computadora funciona bien pero el teléfono no, podrías pensar en esto: ¿Hay una “reliquia del siglo pasado” escondida en tu código?

发表 评论

Su dirección de correo electrónico no será publicada. 项 已 用 * 标注

Ir al Inicio