Pourquoi le code JS échoue-t-il sur Android Chrome ? Décryptage : solution en un clic !

Vous pensiez que le site Web était correct et que le code JS était aussi stable qu'un vieux chien, mais dès que vous avez changé la version du navigateur mobile, la page « s'est mise en grève » ?

Le plus scandaleux est que l’ordinateur fonctionne normalement,AndroidMais le téléphone vous ignore complètement.

Ce n’est pas une blague, c’est un problème de navigateur qui se produit discrètement.

La racine du problème : ce n’est pas que vous l’avez mal écrit, mais que le temps vous a abandonné.

Pourquoi le code JS échoue-t-il sur Android Chrome ? Décryptage : solution en un clic !

En fait, face à ce phénomène, la plupart des développeurs réagissent d'abord : y a-t-il un bug dans la syntaxe JS ? Le DOM n'est-il pas chargé ? Ou l'autorisation est-elle bloquée ?

Résultat ? Aucun. Le véritable coupable s'est avéré être cette écriture ancienne :

<script language="javascript">

Cette ligne de code était populaire il y a 20 ans无限, qui peut être vu dans tous les tutoriels.

Mais en Version 119 de ChromiumAprès cela, Google a dit adieu à cette « grammaire antique » : tant que vous voyez language Les attributs, le navigateur les ignorera de manière sélective et ne prendra même pas la peine de les expliquer.

Pour des raisons de compatibilité, Chrome sur ordinateur « s'en occupe toujours temporairement » ; mais Chrome sur mobile Android est « à l'avant-garde » et a immédiatement activé cette stratégie de nettoyage.

Il s'est donc avéré que :L'ordinateur fonctionne bien, mais le téléphone portable ne fonctionne pasLe problème.

Pourquoi Android a-t-il agi en premier ?

Certaines personnes peuvent se demander : pourquoi Android Chrome est-il lancé en premier ?

C'est très simple, car le rythme de mise à niveau du terminal mobile est plus rapide et Google transmet les informations aussi rapidement que l'envoi d'enveloppes rouges.

Dans 2023 octobre 10La version Android de Chrome 119 a été entièrement déployée via Google Play.

Bien que la version de bureau utilise également le noyau Chromium, il est d'usage de « garder la main » pour éviter de faire exploser soudainement un grand nombre de systèmes internes de l'entreprise.

Donc, si vous utilisez toujours l'expression «language=javascript", sur les téléphones Android, cela équivaut à écrire un code transparent, que le navigateur ignore directement.

Solution : faites-le en trois secondes

Heureusement, la solution à ce problème est incroyablement simple : remplacez simplement cette ligne :

<script>

Ou un peu plus formellement :

<script type="text/javascript">

Il ne faut que quelques secondes pour le modifier et Android Chrome l'exécutera immédiatement.

N'oubliez pas, après la modificationForcer l'actualisation du cacheSinon, le navigateur pourrait encore lire l'ancien fichier. La méthode est simple :

  • Ordinateur : Ctrl + F5
  • Téléphone : Paramètres → Confidentialité → Vider le cache

Une fois actualisé, le code est réactivé en quelques secondes et la page recommence à s'exécuter.

Il s'agit en fait d'une « liquidation »

En dernière analyse, le problème cette fois-ci n’est pas le problème de JS lui-même, maisL'ère du code hérité front-end.

Ce que les fabricants de navigateurs doivent faire est très clair : nettoyer progressivement la syntaxe obsolète et forcer les développeurs à mettre à jour.

C'est comme une autoroute : auparavant, les tricycles et les tracteurs étaient autorisés à circuler côte à côte, mais maintenant, pour des raisons de sécurité, ils doivent être écartés. language="javascript" Ce tracteur aurait dû être sorti de la voie rapide depuis longtemps.

À quoi les développeurs doivent-ils prêter attention ?

Cet incident nous sert de rappel très réaliste :

  1. Les normes de codage sont vraiment importantes Le code que vous pensez « fonctionne simplement » peut cesser de fonctionner dans une certaine version.

  2. L'environnement de test doit suivre le rythme Ne vous contentez pas de cliquer et de publier dans Chrome sur votre ordinateur. Vérifiez-le sur vos appareils mobiles et différentes versions de navigateurs.

  3. Suivre les journaux de mise à jour du navigateur Chaque mise à jour de Chromium entraîne de nombreuses suppressions et abandons. Ce ne sont pas des détails, mais cela peut nuire gravement à votre activité.

Conclusion : Derrière une ligne de code se cache une évolution technologique

Beaucoup de gens se plaignent que Google est « contraire à l’éthique », mais d’un point de vue plus large, il s’agit en fait d’un processus inévitable qui fait avancer l’ensemble de l’écosystème Web.

L’élimination des anciens attributs et l’obligation pour les développeurs de suivre les normes constituent l’itération de la civilisation technologique.

Si nous continuons à être compatibles avec toute la syntaxe obsolète, le front-end deviendra tôt ou tard un pot de méli-mélo délabré.

Ainsi, lorsque nous réparons cette petite fosse, nous participons en réalité à un « mouvement de nettoyage de la civilisation technologique ».

Dans les années à venir, il y aura de plus en plus de pièges similaires, et le seul antidote estRestez au diapason du temps et adoptez les normes.

Résumé final

  • Les ordinateurs peuvent l'exécuter, mais Android ne le peut pas, car <script language="javascript"> Obsolète.
  • Chrome 119 Android Chrome prend la tête du saut language Attribut <script> Pièce.
  • La solution est : utiliser <script><script type="text/javascript">.
  • Après modification, rafraîchissez le cache et le problème sera restauré.
  • Les développeurs doivent toujours prêter attention aux mises à jour du navigateur et développer l’habitude d’écrire du code de manière standardisée.

Alors, la prochaine fois que vous rencontrez un bug étrange où l’ordinateur fonctionne bien mais le téléphone ne fonctionne pas, vous pourriez aussi bien réfléchir à ceci : y a-t-il une « relique du siècle dernier » cachée dans votre code ?

发表 评论

Votre adresse email ne sera pas publiée. 项 已 用 * 标注

Remonter en haut