Чому JS-код не працює на Android та Chrome? Викрито: рішення одним кліком!

Ви думали, що вебсайт непоганий, а JS-код стабільний, як старий пес, але щойно ви змінили версію мобільного браузера, сторінка "застрайкувала"?

Найнеймовірніше те, що комп'ютер працює нормально,AndroidАле телефон вас повністю ігнорує.

Це не жарт, це проблема з браузером, яка непомітно виникає.

Корінь проблеми: справа не в тому, що ти неправильно написав, а в тому, що час тебе покинув.

Чому JS-код не працює на Android та Chrome? Викрито: рішення одним кліком!

Фактично, коли більшість розробників бачать це явище, їхня перша реакція: чи є помилка в синтаксисі JS? Чи не завантажено DOM? Чи заблоковано дозвіл?

Результат? Жодного. Справжнім винуватцем виявився той стародавній текст:

<script language="javascript">

Цей рядок коду був популярним 20 років томунеобмежений, що можна побачити у всіх навчальних посібниках.

Але в Версія Хрому 119Після цього Google попрощався з цією «антикварною граматикою»: головне, щоб ви бачили language Атрибути, браузер вибірково ігноруватиме їх і навіть не потрудиться їх пояснити.

З міркувань сумісності Chrome на комп’ютері все ще «тимчасово цим займається»; але Chrome на мобільних пристроях Android є «авангардом» і одразу ж активував цю стратегію очищення.

Отже, воно з'явилося:Комп'ютер працює добре, але мобільний телефон не працюєПроблема.

Чому Android вжив заходів першим?

Дехто може запитати: чому Android Chrome запускається першим?

Це дуже просто, адже темпи оновлення мобільного терміналу швидші, а Google надсилає інформацію так само швидко, як і червоні конверти.

2023 年 10 月 31 日Версія Chrome 119 для Android повністю завантажена через Google Play.

Хоча десктопна версія також використовує ядро ​​Chromium, прийнято "триматися під контролем", щоб уникнути раптового виходу з ладу великої кількості внутрішніх корпоративних систем.

Отже, якщо ви все ще використовуєте фразу «language=javascript«, на телефонах Android це еквівалентно написанню прозорого коду, який браузер безпосередньо ігнорує.

Рішення: Зробіть це за три секунди

На щастя, вирішення цієї проблеми неймовірно просте. Просто замініть цей рядок:

<script>

Або трохи більш формально:

<script type="text/javascript">

Зміна займає лише кілька секунд, і Android Chrome негайно виконає її.

Пам’ятайте, після модифікаціїПримусове оновлення кешуВ іншому випадку браузер може все ще читати старий файл. Метод також простий:

  • Комп'ютер: Ctrl + F5
  • Телефон: Налаштування → Конфіденційність → Очистити кеш

Після оновлення код відновлюється за лічені секунди, і сторінка знову починає працювати.

Це фактично «ліквідація»

Зрештою, проблема цього разу не в самому JS, а вЕра застарілого фронтенд-коду.

Що потрібно зробити виробникам браузерів, дуже зрозуміло: поступово виправляти застарілий синтаксис і змушувати розробників оновлюватися.

Це як автомагістраль: раніше триколісним велосипедам і тракторам дозволялося їздити поруч, але тепер з міркувань безпеки їх доводиться виганяти. language="javascript" Той трактор не повинен був бути на швидкісній смузі.

На що варто звернути увагу розробникам?

Цей інцидент служить нам дуже реалістичним нагадуванням:

  1. Стандарти кодування справді важливі Код, який, на вашу думку, «просто працює», може перестати працювати в певній версії.

  2. Тестове середовище має йти в ногу з темпом Не просто клацайте та публікуйте у Chrome на своєму комп’ютері. Вам потрібно перевірити це на мобільних пристроях та в різних версіях браузерів.

  3. Слідкуйте за журналами оновлень браузера Щоразу, коли Chromium оновлюється, з'являється багато "вилучень та видалень". Це не прикраси, але вони справді вб'ють ваш бізнес.

Висновок: За рядком коду стоїть технологічна еволюція

Багато людей скаржаться, що Google діє «неетично», але з вищої точки зору, це насправді неминучий процес, який рухає вперед усю веб-екосистему.

Виключення старих атрибутів та примушення розробників дотримуватися стандартів – це ітерація технологічної цивілізації.

Якщо ми й надалі будемо сумісними з усім застарілим синтаксисом, то фронтенд рано чи пізно перетвориться на горщик старої мішанини.

Тому, коли ми ремонтуємо цю невелику яму, ми фактично беремо участь у «очисному русі технологічної цивілізації».

У наступні кілька років подібних пасток буде дедалі більше, і єдиною протиотрутою будеЙдіть у ногу з часом та дотримуйтесь стандартів.

Підсумковий підсумок

  • Комп'ютери можуть його запускати, але Android — ні, тому що <script language="javascript"> Застаріло.
  • Chromium 119 Android Chrome лідирує у пропусках language Атрибут <script> 块。
  • Рішення таке: використання <script><script type="text/javascript">.
  • Після модифікації оновіть кеш, і проблема буде усунена.
  • Розробникам слід завжди звертати увагу на оновлення браузера та розвивати звичку писати код стандартизованим способом.

Тож наступного разу, коли ви зіткнетеся з дивною помилкою, через яку комп’ютер працює нормально, але телефон ні, ви можете подумати про це: чи не прихований у вашому коді «пережиток минулого століття»?

Блог Hope Chen Weiliang ( https://www.chenweiliang.com/ ) поділився статтею «Чому JS-код не працює в Android Chrome? Розкрито причину невиконання та знайдено рішення одним кліком!», що може бути вам корисним.

Ласкаво просимо поділитися посиланням на цю статтю:https://www.chenweiliang.com/cwl-33236.html

Щоб розкрити більше прихованих хитрощів🔑, приєднуйтесь до нашого Telegram-каналу!

Поділіться та поставте лайк, якщо вам подобається! Ваші розповсюдження та вподобання — наша постійна мотивація!

 

发表 评论

Ваша електронна адреса не буде опублікована. 必填 项 已 用 * Етикетка

Прокрутка до початку