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/javascript MIME type, но бÑаÑзеÑÑ ÑниÑÑ
одиÑелÑÐ½Ñ Ð¸ блокиÑÑÑÑ Ð¸Ñ
ÑолÑко, еÑли ÑкÑипÑÑ Ð¾Ð±ÑлÑживаÑÑÑÑ Ñ Ñипом изобÑажение (image/*), Ñипом видео (video/*), Ñипом аÑдио (audio/*), или text/csv. ÐÑли ÑкÑÐ¸Ð¿Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñован, его ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð¿Ð¾Ð»ÑÑÐ°ÐµÑ ÑобÑÑие error; в пÑоÑивном ÑлÑÑае, он полÑÑÐ°ÐµÑ ÑобÑÑие success.
СвойÑÑва
ÐаÑледÑÐµÑ ÑвойÑÑва Ð¾Ñ Ñвоего ÑодиÑелÑ, HTMLElement.
| ÐÐ¼Ñ | Тип | ÐпиÑание |
|---|---|---|
type |
DOMString |
ÐÑедÑÑавлÑÐµÑ Ñип MIME ÑÑенаÑиÑ. Ðн оÑÑÐ°Ð¶Ð°ÐµÑ Ð°ÑÑибÑÑ
type.
|
src |
DOMString |
ÐолÑÑÐ°ÐµÑ Ð¸ оÑдаÑÑ URL внеÑнего ÑкÑипÑа. Ðн оÑÑÐ°Ð¶Ð°ÐµÑ Ð°ÑÑибÑÑ
src.
|
event |
DOMString |
СÑаÑÑй, ÑпоÑоб ÑегиÑÑÑаÑии обÑабоÑÑиков ÑобÑÑий на ÑлеменÑÑ Ð² HTML-докÑменÑе. |
charset |
DOMString |
ÐÑедÑÑавлÑÐµÑ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ñимволов внеÑнего ÑкÑипÑа. Ðн оÑÑÐ°Ð¶Ð°ÐµÑ Ð°ÑÑибÑÑ
charset.
|
async |
Boolean |
ÐÑÑибÑÑÑ Ð¡ÑÑеÑÑвÑÐµÑ ÑÑи возможнÑÑ Ñежима вÑполнениÑ:
ÐÑÑибÑÑ
ÐÑимеÑание: ТоÑнÑе деÑали обÑабоÑки Ð´Ð»Ñ ÑÑиÑ
аÑÑибÑÑов комплекÑнÑ, вклÑÑÐ°Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑво ÑазлиÑнÑÑ
аÑпекÑов HTML, и
ÑазбÑоÑÐ°Ð½Ñ Ð¿Ð¾ вÑей ÑпеÑиÑикаÑии.
ÐÑи алгоÑиÑмÑ
опиÑÑваÑÑ Ð¾ÑновнÑÑ Ð¸Ð´ÐµÑ, но они оÑÐ½Ð¾Ð²Ð°Ð½Ñ Ð½Ð° пÑавилаÑ
ÑинÑакÑиÑеÑкого
анализа длÑ
<script>
оÑкÑÑваÑÑиÑ
и
закÑÑваÑÑиÑ
ÑÑгаÑ
в HTML,
во внеÑнем конÑенÑе, и в
XML; пÑавиле Ð´Ð»Ñ Ð¼ÐµÑода
document.write(); обÑабоÑке
ÑÑенаÑиев; и Ñак далее.
|
defer |
Boolean |
|
crossOrigin
ÐкÑпеÑименÑалÑÐ½Ð°Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ
|
DOMString |
DOMString, оÑÑажаÑÑий
наÑÑÑÐ¾Ð¹ÐºÑ CORS Ð´Ð»Ñ ÑлеменÑов ÑкÑипÑа. ÐÐ»Ñ ÑкÑипÑов из дÑÑгиÑ
иÑÑоÑников, он конÑÑолиÑÑеÑ,
бÑÐ´ÐµÑ Ð»Ð¸ ÑаÑкÑÑÑа инÑоÑмаÑÐ¸Ñ Ð¾Ð± оÑибке.
|
text |
DOMString |
IDL аÑÑибÑÑ
ÐÑимеÑание: ÐÑи вÑÑавке Ñ Ð¸ÑполÑзованием меÑода
document.write(), ÑлеменÑÑ <script> вÑполнÑÑÑÑÑ (обÑÑно
ÑинÑ
Ñонно), когда пÑи вÑÑавке иÑполÑзÑÑÑÑÑ
innerHTML
или
outerHTML, они вообÑе не вÑполнÑÑÑÑÑ.
|
noModule |
Boolean |
ÐÑо бÑлево ÑвойÑÑво вÑполнÑÐµÑ Ð¾ÑÑÐ°Ð½Ð¾Ð²ÐºÑ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÑкÑипÑа в бÑаÑзеÑе, поддеÑживаÑÑим ES2015 модÑли â иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка ÑезеÑвнÑÑ ÑкÑипÑов, коÑоÑÑе не поддеÑживаÑÑ JavaScript модÑли. |
referrerPolicy |
DOMString |
DOMString, коÑоÑÑй оÑÑÐ°Ð¶Ð°ÐµÑ HTML аÑÑибÑÑ
referrerpolicy
ÑказÑваÑÑий, какой ÑеÑеÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð¿Ñи извлеÑении ÑкÑипÑов и
вÑбоÑкаÑ
, вÑполненнÑÑ
ÑÑенаÑиев.
|
ÐеÑодÑ
ÐÐµÑ ÑпеÑиалÑнÑÑ
меÑодов; наÑледÑÐµÑ Ð¼ÐµÑÐ¾Ð´Ñ Ð¾Ñ ÑодиÑелей, HTMLElement.
ÐÑимеÑÑ
>ÐинамиÑеÑкое импоÑÑиÑование ÑкÑипÑов
ÐавайÑе Ñоздадим ÑÑнкÑиÑ. коÑоÑÐ°Ñ Ð¸Ð¼Ð¿Ð¾ÑÑиÑÑÐµÑ Ð½Ð¾Ð²Ñй ÑкÑÐ¸Ð¿Ñ Ð² докÑменÑ, ÑÐ¾Ð·Ð´Ð°Ð²Ð°Ñ Ð½Ð¾Ð´Ñ <script> непоÑÑедÑÑвенно пеÑед <script>, в коÑоÑом ÑазмеÑаеÑÑÑ ÑледÑÑÑий код (ÑеÑез document.currentScript). ÐÑи ÑкÑипÑÑ Ð±ÑдÑÑ Ð²ÑполнÑÑÑÑÑ Ð°ÑинÑ
Ñонно. ÐÐ»Ñ Ð¿Ð¾Ð»ÑÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð´Ñобной инÑоÑмаÑии ÑмоÑÑиÑе ÑвойÑÑва defer и async.
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>.
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;
}
ÐÑоÑÑое иÑполÑзование:
affixScriptToHead("myScript1.js");
affixScriptToHead("myScript2.js", function () {
alert('The script "myScript2.js" has been correctly loaded.');
});
СпеÑиÑикаÑии
| Specification |
|---|
| HTML > # htmlscriptelement > |
СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами
СмоÑÑиÑе Ñакже
- HTML-ÑлеменÑ
<script> - HTML-ÑлеменÑ
<noscript> document.currentScript- Web Workers (ÑÑагменÑÑ ÐºÐ¾Ð´Ð°, Ð¿Ð¾Ñ Ð¾Ð¶Ð¸Ðµ на ÑкÑипÑÑ, но вÑполнÑемÑе в дÑÑгом глобалÑном конÑекÑÑе)
- Ryan Grove's <script> and <link> node event compatibility chart