Artikelkatalog
- 1 Problemets rot: Det är inte så att du skrev fel, utan att tiden har övergivit dig.
- 2 Varför agerade Android först?
- 3 Lösning: Gör det klart på tre sekunder
- 4 Detta är egentligen en "likvidation"
- 5 Vad bör utvecklare vara uppmärksamma på?
- 6 Slutsats: Bakom en rad kod finns teknologisk utveckling
- 7 Slutlig sammanfattning
Du trodde att webbplatsen var okej och att JS-koden var stabil som en gammal hund, men så fort du bytte mobilversion av webbläsaren "gick sidan i strejk"?
Det mest upprörande är: datorn fungerar normalt,AndrewsMen telefonen ignorerar dig helt.
Det här är inget skämt, det är ett webbläsarproblem som har pågått i det tysta.
Problemets rot: Det är inte så att du skrev fel, utan att tiden har övergivit dig.

Faktum är att när de flesta utvecklare ser detta fenomen är deras första reaktion: Finns det ett fel i JS-syntaxen? Är DOM-filen inte laddad? Eller är behörigheten blockerad?
Resultatet? Inget av dem. Den verkliga boven i dramat visade sig vara den där gamla skriften:
<script language="javascript">
Den här kodraden var populär för 20 år sedanobegränsat, vilket kan ses i alla handledningar.
但在 Chromium version 119Efter det sa Google adjö till denna "antika grammatik": så länge du ser language Attribut, kommer webbläsaren selektivt att ignorera dem och inte ens bry sig om att förklara dem.
Av kompatibilitetsskäl tar Chrome på datorer fortfarande "hand om det tillfälligt"; men Chrome på mobila Android-enheter är "förtruppen" och aktiverade omedelbart denna rensningsstrategi.
Så det visade sig:Datorn fungerar bra, men mobilen fungerar inteProblemet.
Varför agerade Android först?
Vissa kanske frågar: Varför lanserades Android Chrome först?
Det är väldigt enkelt, eftersom uppgraderingstakten för mobilterminalen är snabbare, och Google skickar information lika snabbt som att skicka röda kuvert.
i 2023 年 10 月 31 日Chrome 119 Android-versionen har publicerats helt via Google Play.
Även om skrivbordsversionen använder Chromium-kärnan är det brukligt att "hålla en hand" för att undvika att plötsligt spränga ett stort antal interna företagssystem.
Så, om du fortfarande använder frasen "language=javascript", på Android-telefoner motsvarar det att skriva en transparent kod, som webbläsaren ignorerar direkt.
Lösning: Gör det klart på tre sekunder
Lyckligtvis är lösningen på det här problemet otroligt enkel. Ersätt bara den här raden:
<script>
Eller lite mer formellt:
<script type="text/javascript">
Det tar bara några sekunder att ändra det, och Android Chrome kommer omedelbart att köra det.
Kom ihåg, efter modifieringenTvinga uppdatering av cacheAnnars kan webbläsaren fortfarande läsa den gamla filen. Metoden är också enkel:
- Dator: Ctrl + F5
- Telefon: Inställningar → Sekretess → Rensa cacheminnet
När koden har uppdaterats återupplivas den inom några sekunder och sidan börjar köras igen.
Detta är egentligen en "likvidation"
I slutändan är problemet den här gången inte JS självt, utanEran av äldre frontend-kod.
Vad webbläsartillverkare behöver göra är mycket tydligt: gradvis rensa upp den föråldrade syntaxen och tvinga utvecklare att uppdatera.
Det är som en motorväg: trehjulingar och traktorer fick köra sida vid sida tidigare, men nu måste de av säkerhetsskäl köras ut. language="javascript" Den traktorn borde inte ha varit i snabbfilen.
Vad bör utvecklare vara uppmärksamma på?
Denna händelse fungerar som en mycket realistisk påminnelse för oss:
Kodningsstandarder är verkligen viktiga Koden som du tror "bara fungerar" kan sluta fungera i en viss version.
Testmiljön måste hålla jämna steg med tempot Klicka inte bara och publicera i Chrome på din dator. Du måste kontrollera det på mobila enheter och olika versioner av webbläsare.
Följ webbläsarens uppdateringsloggar Varje gång Chromium uppgraderas finns det många "Deprecation and Removal"-fel. Dessa är inte dekorationer, men kommer verkligen att förstöra ditt företag.
Slutsats: Bakom en rad kod finns teknologisk utveckling
Många klagar på att Google är "oetiskt", men ur ett högre perspektiv är detta faktiskt en oundviklig process som driver hela webbekosystemet framåt.
Att eliminera gamla attribut och tvinga utvecklare att följa standarder är en iteration av teknologisk civilisation.
Om vi fortsätter att vara kompatibla med all föråldrad syntax kommer användargränssnittet förr eller senare att bli en gryta av förfallet blandad data.
Därför, när vi reparerar denna lilla grop, deltar vi faktiskt i en "rengöringsrörelse av den teknologiska civilisationen".
Under de närmaste åren kommer det att finnas fler och fler liknande fallgropar, och det enda motgiftet ärHåll jämna steg med tiden och omfamna standarder.
Slutlig sammanfattning
- Datorer kan köra det, men Android kan inte, eftersom
<script language="javascript">Föråldrad. - 从 Krom 119 Android Chrome tar ledningen i att hoppa över
languageAttribut<script>块。 - Lösningen är: använd
<script>eller<script type="text/javascript">. - Uppdatera cachen efter ändringen så kommer problemet att återställas.
- Utvecklare bör alltid vara uppmärksamma på webbläsaruppdateringar och utveckla vanan att skriva kod på ett standardiserat sätt.
Så nästa gång du stöter på en konstig bugg där datorn fungerar bra men telefonen inte fungerar, kan du lika gärna tänka på detta: Finns det en "relik från förra seklet" gömd i din kod?
Hope Chen Weiliang blogg ( https://www.chenweiliang.com/ ) delade "Varför misslyckas JS-kod i Android Chrome? Anledningen till att den inte körs avslöjas och en lösning med ett enda klick finns!", vilket kan vara till hjälp för dig.
Välkommen att dela länken till denna artikel:https://www.chenweiliang.com/cwl-33236.html
