Тип JavaScript = «модуль» не работает в iOS

#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 является здесь главным виновником. Однако я ценю ваше тестирование. 🙂