Movatterモバイル変換


[0]ホーム

URL:


  1. Веб-технологии для разработчиков
  2. Интерфейсы веб API
  3. HTMLScriptElement

This page was translated from English by the community.Learn more and join the MDN Web Docs community.

View in EnglishAlways switch to English

HTMLScriptElement

Baseline Widely available *

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨июль 2015 г.⁩.

* Some parts of this feature may have varying levels of support.

HTML-элементы<script> предоставляютHTMLScriptElement интерфейс, который предоставляет специальные свойства и методы для манипулирования поведением и выполнением<script> элементов (за пределами унаследованногоHTMLElement интерфейса).

JavaScript файлы должны обслуживаться сapplication/javascriptMIME type, но браузеры снисходительны и блокируют их только, если скрипты обслуживаются с типом изображение (image/*), типом видео (video/*), типом аудио (audio/*), илиtext/csv. Если скрипт заблокирован, его элемент получает событиеerror; в противном случае, он получает событиеsuccess.

must be a string

Свойства

Наследует свойства от своего родителя,HTMLElement.

ИмяТипОписание
typeDOMString Представляет тип MIME сценария. Он отражает атрибутtype.
srcDOMString Получает и отдаёт URL внешнего скрипта. Он отражает атрибутsrc.
eventDOMString Старый, способ регистрации обработчиков событий на элементы в HTML-документе.
charsetDOMString Представляет кодировку символов внешнего скрипта. Он отражает атрибутcharset.
asyncBoolean

Атрибутыasync иdeferбулевы атрибуты, которые контролируют как скрипт должен выполняться.Атрибутыdefer иasync не должны быть указаны, если атрибутsrc отсутствует.

Существует три возможных режима выполнения:

  1. Если атрибутasync представлен, то скрипт будет выполняться асинхронно по мере загрузки.
  2. Если атрибутasync отсутствует, но представлен атрибутdefer, то скрипт будет выполняться когдастраница полностью загружена.
  3. Если ни один атрибут не представлен, то скрипт извлекается и выполняется незамедлительно, блокируя дальнейший парсинг страницы.

Атрибутdefer может быть указан с атрибутомasync, тогда устаревшие браузеры, которые поддерживают толькоdefer (но неasync) откатятся к поведениюdefer взамен дефолтного поведения блокировки.

Примечание: Точные детали обработки для этих атрибутов комплексны, включая множество различных аспектов HTML, и разбросаны по всей спецификации.Эти алгоритмы описывают основную идею, но они основаны на правилах синтаксического анализа для<script>открывающих изакрывающих тэгах в HTML,во внешнем контенте, и в XML; правиле для методаdocument.write(); обработкесценариев; и так далее.
deferBoolean
crossOriginЭкспериментальная возможностьDOMStringDOMString, отражающийнастройку CORSдля элементов скрипта. Для скриптов из другихисточников, он контролирует, будет ли раскрыта информация об ошибке.
textDOMString

IDL атрибутtext объединяет и возвращает содержимое всехText нод внутри элемента<script> (игнорируя другие ноды, такие как комментарии) в древовидном порядке. При установке, он действует также, как и IDL атрибутtextContent.

Примечание: При вставке с использованием методаdocument.write(), элементы<script> выполняются (обычно синхронно), когда при вставке используютсяinnerHTML илиouterHTML, они вообще не выполняются.
noModuleBoolean Это булево свойство выполняет остановку выполнения скрипта в браузере, поддерживающимES2015 модули — используется для запуска резервных скриптов, которые не поддерживают JavaScript модули.
referrerPolicyDOMStringDOMString, который отражает HTML атрибутreferrerpolicy указывающий, какой реферер использовать при извлечении скриптов и выборках, выполненных сценариев.

Методы

Нет специальных методов; наследует методы от родителей,HTMLElement.

Примеры

Динамическое импортирование скриптов

Давайте создадим функцию. которая импортирует новый скрипт в документ, создавая ноду<script>непосредственно перед<script>, в котором размещается следующий код (черезdocument.currentScript). Эти скрипты будут выполнятьсяасинхронно. Для получения подробной информации смотрите свойстваdefer иasync.

js
function loadError(oError) {  throw new URIError(    "The script " + oError.target.src + " didn't load correctly.",  );}function prefixScript(url, onloadFunction) {  var newScript = document.createElement("script");  newScript.onerror = loadError;  if (onloadFunction) {    newScript.onload = onloadFunction;  }  document.currentScript.parentNode.insertBefore(    newScript,    document.currentScript,  );  newScript.src = url;}

Следующая функция, вместо добавления новых скриптов непосредственно перед элементомdocument.currentScript, добавляет их как потомков тега<head>.

js
function loadError(oError) {  throw new URIError(    "The script " + oError.target.src + " didn't load correctly.",  );}function affixScriptToHead(url, onloadFunction) {  var newScript = document.createElement("script");  newScript.onerror = loadError;  if (onloadFunction) {    newScript.onload = onloadFunction;  }  document.head.appendChild(newScript);  newScript.src = url;}

Простое использование:

js
affixScriptToHead("myScript1.js");affixScriptToHead("myScript2.js", function () {  alert('The script "myScript2.js" has been correctly loaded.');});

Спецификации

Specification
HTML
# htmlscriptelement

Совместимость с браузерами

Смотрите также

Help improve MDN

Learn how to contribute

This page was last modified on byMDN contributors.


[8]ページ先頭

©2009-2025 Movatter.jp