#javascript #html #ios #module
#javascript #HTML #iOS #модуль
Вопрос:
У меня возникают проблемы с тем, что код JavaScript не выполняется на устройствах iOS при использовании type="module"
атрибута.
iOS 14, похоже, работает нормально, однако более ранние версии этого не делают.
Я создал базовый тест (см. Код ниже), который отлично работает на других устройствах (мобильные телефоны и планшеты Android, настольные компьютеры), кроме iOS.
При запуске тестового сайта на iOS 12 с использованием трех разных браузеров Chrome, Firefox и Safari скрипт по-прежнему не выполняется. Я даже работал на нескольких устройствах iOS 12.
Я обнаружил, что при удалении type="module
атрибута файл JavaScript выполняется нормально.
Я подумал, что, возможно, iOS несовместима с модулями, однако в соответствии с caniuse.com Модули JavaScript совместимы с iOS 11 и выше.
Код для моего тестового сайта (не работающий на iOS):
index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Test Site</title>
</head>
<body>
<h1>Test Site v16.0</h1>
<p id="text-message">:( the module is not working...</p>
<button id="btn-change">This is a button, can you Click Me</button>
<script type="module" src="script2.js"></script>
</body>
</html>
script2.js
"use strict"
document.getElementById("btn-change").addEventListener("click", (e)=> {
alert("OK, if you can see this message the script is working....");
} );
const message = document.getElementById("text-message");
message.innerText = "If you can see this it means the module is working! ";
Я знаю, что проблема как-то связана с type="module"
атрибутом, однако, поскольку я импортирую / экспортирую в JavaScript (не показан в тесте) Мне нужно включить этот атрибут.
Я относительно новичок в веб-дизайне, поэтому, возможно, есть что-то важное, чему я еще не научился, поэтому буду признателен за любую помощь или объяснение.
Комментарии:
1. Я могу подтвердить, что он работает в 14.1 Chrome, Safari, Firefox, Brave
2. Я пробовал это в iOS 14, и, похоже, все работает нормально. Но iOS 12 является здесь главным виновником. Однако я ценю ваше тестирование. 🙂