DOMContentLoaded не запускается в IOS Safari

#javascript #html #dom-manipulation

#javascript #HTML #dom-манипуляция

Вопрос:

Прежде всего: я новичок в программировании в generel. я начал работать всего 3 месяца назад.

Я создаю веб-сайт для своего друга. Панель навигации в нем должна реагировать на изменение содержимого html, что отлично работает на каждом устройстве, которое я тестировал. но когда я пытаюсь установить innerHTML моего nav-ul с помощью DOMContentLoaded, что-то идет не так, но только в IOS Safari. к сожалению, я не могу использовать какие-либо инструменты разработчика браузера в своем ios Safari.

Вот мой app.js

 document.addEventListener("DOMContentLoaded", function() {
const rect = document.querySelector(".main-container");
const screenWidth = rect.getBoundingClientRect().width;

if (screenWidth <= 800) {
    document.getElementById("navbar-list").innerHTML = `<li><a href="tel:xxxxx"><img src="./vector/phone1.png" alt="" class="icon"><p id="number">Anrufen</p></a></li><li><a href="whatsapp://send?text=Hallo! ich bin ein text der in einem whatsapp button programmiert ist auf peters website!amp;phone=xxxxx"><img src="./vector/icons8-whatsapp.svg" alt="" class="icon"><p>WhatsApp</p></a></li>`
} else {
    document.getElementById("navbar-list").innerHTML = `<li><a href="#home">Home</a></li><li><a href="#faecher">Fächer</a></li><li><a href="#konzept">Konzept</a></li><li><a href="#reviews">Ergebnisse</a></li><li><a href="#contact">Kontakt</a></li>`
}
});
 

Пропускаю ли я какие-то ожидающие вещи, потому что я должен упомянуть некоторые асинхронные вещи?

Спасибо за вашу помощь!

Комментарии:

1. Вы можете использовать Safari Web Inspector для просмотра и отладки страницы iOS Safari. Вам понадобится устройство iOS и настольный компьютер / ноутбук Mac.

2. @terrymorse да, я знаю, но, к сожалению, у меня нет подходящего кабеля для подключения моего устройства iOS к моему macbook. Но спасибо вам за подсказку! 🙂

Ответ №1:

Можете ли вы войти document.readyState в этот обратный вызов? Если это не loading так, это означает, что событие было запущено до регистрации прослушивателя событий.

Подробнее здесь: https://developer.apple.com/forums/thread/651215

Комментарии:

1. Спасибо! с обходным решением по ссылке, которую вы опубликовали, все работает нормально!