Hvorfor fejler JS-kode på Android Chrome? Afsløret: Løsning med ét klik!

Du troede, at hjemmesiden var fin, og at JS-koden var stabil som en gammel hund, men så snart du ændrede mobilbrowserversionen, "gik siden i strejke"?

Det mest skandaløse er, at det fungerer normalt på en computer, men ignorerer dig fuldstændigt på en Android- telefon.

Det er ikke en joke, det er et browserproblem, der er opstået stille og roligt.

Problemets rod: Det er ikke, at du skrev det forkert, men at tiden har svigtet dig.

Hvorfor fejler JS-kode på Android Chrome? Afsløret: Løsning med ét klik!

Faktisk, når de fleste udviklere ser dette fænomen, er deres første reaktion: Er der en fejl i JS-syntaksen? Er DOM'en ikke indlæst? Eller er tilladelsen blokeret?

Resultatet? Ingen af ​​dem. Den virkelige synder viste sig at være den gamle skrift:

<script language="javascript">

Denne kodelinje var utrolig populær for 20 år siden ; man kunne se den i alle tutorials.

但在 Chromium version 119Derefter sagde Google farvel til denne "antikke grammatik": så længe du ser language Attributter, vil browseren selektivt ignorere dem og ikke engang gide at forklare dem.

Af kompatibilitetsårsager "tager Chrome sig stadig midlertidigt af det" på computeren; men Chrome på mobil-Android er "avantgarden" og aktiverede straks denne rengøringsstrategi.

Dette førte til problemet med, at computeren fungerede fint, men at mobiltelefonen ikke fungerede korrekt.

Hvorfor handlede Android først?

Nogle spørger måske: Hvorfor lanceres Android Chrome først?

Det er meget simpelt, fordi opgraderingshastigheden for mobilterminalen er hurtigere, og Google sender information lige så hurtigt som at sende røde kuverter.

Den 31. oktober 2023 blev Chrome 119 til Android fuldt ud rullet ud via Google Play.

Selvom desktopversionen også bruger Chromium-kernen, er det sædvanligt at "holde en hånd med" for at undgå pludselig at sprænge et stort antal interne virksomhedssystemer i luften.

Så hvis du stadig bruger udtrykket "language=javascript", på Android-telefoner svarer det til at skrive en transparent kode, som browseren ignorerer direkte.

Løsning: Få det gjort på tre sekunder

Heldigvis er løsningen på dette problem utrolig simpel. Du skal blot erstatte denne linje:

<script>

Eller lidt mere formelt:

<script type="text/javascript">

Det tager kun et par sekunder at ændre det, og Android Chrome vil straks udføre det.

Husk at gennemtvinge opdatering af cachen efter ændringer ; ellers kan browseren stadig læse den gamle fil. Metoden er enkel:

  • Computer: Ctrl + F5
  • Telefon: Indstillinger → Privatliv → Ryd cache

Når koden er opdateret, genoplives den i løbet af få sekunder, og siden begynder at køre igen.

Dette er faktisk en "likvidation"

I sidste ende var dette problem ikke med selve JavaScript, men snarere en opgørelse med ældre frontend-kode.

Det, browserproducenter skal gøre, er meget klart: gradvist rydde op i den forældede syntaks og tvinge udviklere til at opdatere.

Det er som en motorvej: trehjulede cykler og traktorer måtte køre side om side før, men nu skal de af sikkerhedsmæssige årsager køres væk. language="javascript" Den traktor burde ikke have været i overhalingsbanen.

Hvad skal udviklere være opmærksomme på?

Denne hændelse tjener som en meget realistisk påmindelse for os:

  1. Kodestil er virkelig vigtig. Kode, som du tror "bare skal køre", kan gå i stykker i en senere version.

  2. Testmiljøet skal følge med tempoet. Du skal ikke bare klikke rundt i Chrome på din computer og slippe den. Du skal teste det på mobile enheder og forskellige versioner af browsere.

  3. Vær opmærksom på browseropdateringsloggene. Chromium-opdateringer kommer altid med en masse meddelelser om "Deprecation and Removal". Disse er ikke kun for syns skyld; de kan faktisk ødelægge din virksomhed.

Konklusion: Bag en linje kode gemmer sig teknologisk udvikling

Mange klager over, at Google er "uetisk", men fra et højere perspektiv er dette faktisk en uundgåelig proces, der driver hele webøkosystemet fremad.

At eliminere gamle attributter og tvinge udviklere til at følge standarder er en iteration af teknologisk civilisation.

Hvis vi fortsætter med at være kompatible med al forældet syntaks, vil front-end'en før eller siden blive et forfaldent sammensurium.

Derfor, når vi reparerer denne lille hul, deltager vi faktisk i en "rensningsbevægelse af den teknologiske civilisation".

I de kommende år vil lignende faldgruber kun blive flere, og den eneste løsning er at følge med tiden og omfavne reglerne.

Endelig resumé

  • Computere kan køre det, men Android kan ikke, fordi <script language="javascript"> Udfaset.
  • fra Chrom 119 Android Chrome tager føringen i at springe over language Attribut <script> 块.
  • Løsningen er: brug <script> 或 <script type="text/javascript">.
  • Opdater cachen efter ændringen, og problemet vil blive løst.
  • Udviklere bør altid være opmærksomme på browseropdateringer og udvikle vanen med at skrive kode på en standardiseret måde.

Så næste gang du støder på en mærkelig fejl, hvor computeren fungerer fint, men telefonen ikke fungerer, kan du lige så godt tænke over dette: Er der en "levn fra det forrige århundrede" gemt i din kode?

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Rul til top