В асинхронно загружаемом скрипте этот код можно заменить на:
var container = document.getElementById(\\\"container\\\");var content = document.createElement(\\\"span\\\");content.style.color = \\\"red\\\";content.innerHTML = \\\"Hello\\\";container.appendChild(content);
В качестве альтернативы, поскольку контейнер пуст, можно использовать следующий упрощенный код:
var container = document.getElementById(\\\"container\\\");container.innerHTML = \\'Hello\\';
Применяя эти методы манипулирования DOM, разработчики могут эффективно записывать в документы из асинхронно загружаемых скриптов, избегая ограничений наложено document.write().
","image":"http://www.luping.net/uploads/20241104/17307187276728ac0702fe7.jpg","datePublished":"2024-11-09T03:16:22+08:00","dateModified":"2024-11-09T03:16:22+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}Ограничения на выполнение в асинхронно загружаемых сценариях: понимание ограничений document.write()
Попытка записи в документ из сценария, загруженного асинхронно, приводит к возникновению проблем сообщение консоли: «Не удалось выполнить «запись» в «Документе»: запись в документ из асинхронно загруженного внешнего сценария невозможна, если он не открыт явно». Это сообщение может появиться несмотря на ожидаемое поведение скрипта, оставив разработчиков в недоумении.
Почему существует ограничение
Асинхронно загружаемые скрипты часто выполняются после того, как документ был проанализирован и закрыто. Следовательно, использование document.write() из таких скриптов становится проблематичным, поскольку документ больше не открыт для записи.
Решение: явное манипулирование DOM
Вместо использования document .write() разработчики должны явно манипулировать DOM в асинхронно загружаемых скриптах. Это включает в себя создание элементов DOM и вставку их в нужный родительский элемент с использованием таких методов, как .appendChild(), .insertBefore() или установки .innerHTML.
Пример: манипулирование DOM
Для иллюстрации рассмотрим следующий встроенный скрипт:
В асинхронно загружаемом скрипте этот код можно заменить на:
var container = document.getElementById("container"); var content = document.createElement("span"); content.style.color = "red"; content.innerHTML = "Hello"; container.appendChild(content);
В качестве альтернативы, поскольку контейнер пуст, можно использовать следующий упрощенный код:
var container = document.getElementById("container");
container.innerHTML = 'Hello';
Применяя эти методы манипулирования DOM, разработчики могут эффективно записывать в документы из асинхронно загружаемых скриптов, избегая ограничений наложено document.write().
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3