Baseline Widely available *
HTML-ÑÐ»ÐµÐ¼ÐµÐ½Ñ <script>
иÑполÑзÑеÑÑÑ Ð´Ð»Ñ Ð²ÑÑÑÐ°Ð¸Ð²Ð°Ð½Ð¸Ñ Ð¸Ð»Ð¸ подклÑÑÐµÐ½Ð¸Ñ Ð¸ÑполнÑемого JavaScript кода. ÐÐ»ÐµÐ¼ÐµÐ½Ñ <script>
Ñакже Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ñ Ð´ÑÑгими ÑзÑками, Ñакими как GLSL Ð¾Ñ WebGL.
ÐÑÐ¾Ñ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð²ÐºÐ»ÑÑÐ°ÐµÑ Ð³Ð»Ð¾Ð±Ð°Ð»ÑнÑе аÑÑибÑÑÑ.
async
ÐÑо логиÑеÑкий аÑÑибÑÑ, ÑказÑваÑÑий бÑаÑзеÑÑ, еÑли возможно, загÑÑжаÑÑ ÑкÑипÑ, ÑказаннÑй в аÑÑибÑÑе src
, аÑинÑ
Ñонно.
ÐÑедÑпÑеждение: ÐÑÑибÑÑ async
не бÑÐ´ÐµÑ Ð¾ÐºÐ°Ð·ÑваÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð³Ð¾ ÑÑÑекÑа, еÑли аÑÑибÑÑ src
оÑÑÑÑÑÑвÑеÑ. ÐбÑÑно бÑаÑзеÑÑ Ð·Ð°Ð³ÑÑжаÑÑ <script>
ÑинÑ
Ñонно, (Ñ.е. async="false"
) во вÑÐµÐ¼Ñ ÑазбоÑа докÑменÑа. ÐинамиÑеÑки вÑÑавленнÑй <script>
(иÑполÑзÑÑ, напÑимеÑ, document.createElement
) по ÑмолÑÐ°Ð½Ð¸Ñ Ð·Ð°Ð³ÑÑжаÑÑÑÑ Ð±ÑаÑзеÑом аÑинÑ
Ñонно, поÑÑÐ¾Ð¼Ñ Ð´Ð»Ñ Ð²ÐºÐ»ÑÑÐµÐ½Ð¸Ñ ÑинÑ
Ñонной загÑÑзки (Ñ.е. когда ÑкÑипÑÑ Ð·Ð°Ð³ÑÑжаÑÑÑÑ Ð² поÑÑдке иÑ
вÑÑавки) ÑкажиÑе async="false"
.
crossorigin
ÐбÑÑнÑе ÑлеменÑÑ Ñега script
пеÑедаÑÑ Ð¼Ð°Ð»Ð¾ инÑоÑмаÑии в window.onerror
Ð´Ð»Ñ ÑкÑипÑов, коÑоÑÑе не пÑоÑ
одÑÑ Ð¿ÑовеÑÐºÑ CORS. ЧÑÐ¾Ð±Ñ ÑазÑеÑиÑÑ Ð²ÐµÐ´ÐµÐ½Ð¸Ðµ жÑÑнала оÑибок ÑайÑа, коÑоÑÑе иÑполÑзÑÑÑ Ð¾ÑделÑнÑй домен Ð´Ð»Ñ ÑÑаÑиÑеÑкиÑ
Ñайлов (напÑимеÑ, изобÑажение, видео-Ñайл, CSS-ÑÑили или Javascript-код), иÑполÑзÑйÑе аÑÑибÑÑ crossorigin
. ÐоÑмоÑÑиÑе ÑÑаÑÑÑ Â«Ð½Ð°ÑÑÑойки аÑÑибÑÑов CORS» Ð´Ð»Ñ Ð±Ð¾Ð»ÐµÐµ наглÑдного обÑÑÑÐ½ÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ допÑÑÑимÑÑ
аÑгÑменÑов.
defer
ÐÑо логиÑеÑкий аÑÑибÑÑ, ÑказÑваÑÑий бÑаÑзеÑÑ, ÑÑо ÑкÑÐ¸Ð¿Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ вÑполнÑÑÑÑÑ Ð¿Ð¾Ñле ÑазбоÑа докÑменÑа, но до ÑобÑÑÐ¸Ñ DOMContentLoaded
. СкÑипÑÑ Ñ Ð°ÑÑибÑÑом defer
бÑдÑÑ Ð¿ÑедоÑвÑаÑаÑÑ Ð·Ð°Ð¿ÑÑк ÑобÑÑÐ¸Ñ DOMContentLoaded
до ÑеÑ
поÑ, пока ÑкÑÐ¸Ð¿Ñ Ð½Ðµ загÑÑзиÑÑÑ Ð¿Ð¾Ð»Ð½Ð¾ÑÑÑÑ Ð¸ не завеÑÑиÑÑÑ ÐµÐ³Ð¾ иниÑиализаÑиÑ.
ÐÑедÑпÑеждение: ÐÑÑибÑÑ defer
не бÑÐ´ÐµÑ Ð¾ÐºÐ°Ð·ÑваÑÑ Ð½Ð¸ÐºÐ°ÐºÐ¾Ð³Ð¾ ÑÑÑекÑа, еÑли аÑÑибÑÑ src
оÑÑÑÑÑÑвÑеÑ. ЧÑÐ¾Ð±Ñ Ð´Ð¾ÑÑигнÑÑÑ Ñакого же ÑÑÑекÑа Ð´Ð»Ñ Ð´Ð¸Ð½Ð°Ð¼Ð¸ÑеÑки вÑÑавленнÑÑ
ÑкÑипÑов иÑполÑзÑйÑе async=false
. СкÑипÑÑ Ñ Ð°ÑÑибÑÑом defer
бÑдÑÑ Ð²ÑполнÑÑÑÑÑ Ð² Ñом поÑÑдке, в коÑоÑом они поÑвилиÑÑ Ð¿Ñи ÑазбоÑе докÑменÑа.
integrity
ÐÑÐ¾Ñ Ð°ÑÑибÑÑ ÑодеÑÐ¶Ð¸Ñ Ð²ÑÑÑоеннÑе меÑаданнÑе, коÑоÑÑе Ð°Ð³ÐµÐ½Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ (бÑаÑзеÑ) Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки Ñого, ÑÑо вÑбÑаннÑй ÑеÑÑÑÑ Ð±Ñл доÑÑавлен без непÑедвиденнÑÑ Ð¼Ð°Ð½Ð¸Ð¿ÑлÑÑий. СмоÑÑиÑе ЦелоÑÑноÑÑÑ ÑÑбÑеÑÑÑÑа.
nomodule
ÐÑлевÑй аÑÑибÑÑ, коÑоÑÑй ÑÑÑанавливаеÑÑÑ Ð´Ð»Ñ Ñого, ÑÑÐ¾Ð±Ñ ÑкÑÐ¸Ð¿Ñ Ð½Ðµ вÑполнÑлÑÑ Ð² бÑаÑзеÑÐ°Ñ , поддеÑживаÑÑÐ¸Ñ ES6-модÑли (англ.). Таким обÑазом, Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð¸ÑполÑзован Ð´Ð»Ñ Ð¿ÑедоÑÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ ÑезеÑвнÑÑ ÑÑенаÑиев в ÑÑаÑÑÑ Ð±ÑаÑзеÑÐ°Ñ , коÑоÑÑе не поддеÑживаÑÑ Ð¼Ð¾Ð´ÑлÑнÑй код JavaScript.
nonce
ÐÑипÑогÑаÑиÑеÑкий одноÑазовÑй Ð½Ð¾Ð¼ÐµÑ (номеÑ, иÑполÑзÑемÑй один Ñаз) Ð´Ð»Ñ Ð²Ð½ÐµÑÐµÐ½Ð¸Ñ Ð²ÑÑÑоеннÑÑ ÑкÑипÑов в белÑй ÑпиÑок в script-src Content-Security-Policy. СеÑÐ²ÐµÑ Ð´Ð¾Ð»Ð¶ÐµÐ½ генеÑиÑоваÑÑ ÑникалÑное одноÑазовое знаÑение каждÑй Ñаз, когда он пеÑÐµÐ´Ð°ÐµÑ Ð¿Ð¾Ð»Ð¸ÑикÑ. ÐÑайне важно пÑедоÑÑавиÑÑ Ð¾Ð´Ð½Ð¾ÑазовÑй номеÑ, коÑоÑÑй нелÑÐ·Ñ ÑгадаÑÑ, поÑколÑÐºÑ Ð² пÑоÑивном ÑлÑÑае Ð¾Ð±Ñ Ð¾Ð´ полиÑики ÑеÑÑÑÑа ÑвлÑеÑÑÑ ÑÑивиалÑнÑм.
src
ÐпÑеделÑÐµÑ URI внеÑнего ÑкÑипÑа; ÑвлÑеÑÑÑ Ð°Ð»ÑÑеÑнаÑивой вÑÑÑÐ°Ð¸Ð²Ð°Ð½Ð¸Ñ ÑкÑипÑа непоÑÑедÑÑвенно в докÑменÑ.
ÐÑедÑпÑеждение: ÐÑли Ñ ÑлеменÑа script
бÑÐ´ÐµÑ Ñказан аÑÑибÑÑ src
, Ñо он не должен имеÑÑ Ð²ÑÑÑоеннÑй ÑкÑÐ¸Ð¿Ñ Ð¼ÐµÐ¶Ð´Ñ Ñегами.
text
Ðак и аÑÑибÑÑ textContent
, ÑÑÐ¾Ñ Ð°ÑÑибÑÑ Ð·Ð°Ð´Ð°ÐµÑ ÑекÑÑовое ÑодеÑжимое ÑлеменÑа. Ðднако, в оÑлиÑие Ð¾Ñ Ð°ÑÑибÑÑа textContent
, ÑÑÐ¾Ñ Ð°ÑÑибÑÑ Ð¾ÑениваеÑÑÑ ÐºÐ°Ðº иÑполнÑемÑй код поÑле Ñого, как Ñзел вÑÑавлен в DOM.
type
ÐÑÐ¾Ñ Ð°ÑÑибÑÑ ÑказÑÐ²Ð°ÐµÑ Ñип пÑедÑÑавленного ÑкÑипÑа. ÐнаÑение ÑÑого аÑÑибÑÑа бÑÐ´ÐµÑ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑÑ Ð² одной из ÑледÑÑÑÐ¸Ñ ÐºÐ°ÑегоÑий:
module
charset
и defer
игноÑиÑÑÑÑÑÑ. ÐÐ»Ñ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑной инÑоÑмаÑии по иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ module
, ÑмоÑÑиÑе ÑÑководÑÑво по JavaScript-модÑлÑм. РоÑлиÑие Ð¾Ñ ÐºÐ»Ð°ÑÑиÑеÑкиÑ
ÑкÑипÑов, модÑли ÑÑебÑÑÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ CORS-пÑоÑокола Ð´Ð»Ñ ÐºÑоÑÑдоменнÑÑ
запÑоÑов.importmap
src
бÑÐ´ÐµÑ Ð¿ÑоигноÑиÑован.charset
УÑÑаÑело
ÐÑли пÑиÑÑÑÑÑвÑеÑ, его знаÑение должно ÑооÑвеÑÑÑвоваÑÑ "utf-8" без ÑÑеÑа ÑегиÑÑÑа ASCII. Рв Ñом, и в дÑÑгом ÑлÑÑае Ð½ÐµÑ Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ð¾ÑÑи ÑказÑваÑÑ Ð°ÑÑибÑÑ charset, поÑколÑÐºÑ Ð´Ð¾ÐºÑменÑÑ Ð´Ð¾Ð»Ð¶Ð½Ñ Ð¸ÑполÑзоваÑÑ UTF-8, а ÑÐ»ÐµÐ¼ÐµÐ½Ñ script наÑледÑÐµÑ ÑÐ²Ð¾Ñ ÐºÐ¾Ð´Ð¸ÑÐ¾Ð²ÐºÑ Ñимволов Ð¾Ñ Ð´Ð¾ÐºÑменÑа.
language
УÑÑаÑело Ðе ÑÑандаÑÑно
Ðак и аÑÑибÑÑ type
, ÑÑÐ¾Ñ Ð°ÑÑибÑÑ Ð¾Ð¿ÑеделÑÐµÑ Ð¸ÑполÑзÑемÑй ÑзÑк ÑÑенаÑиев. Ðднако, в оÑлиÑие Ð¾Ñ type
, возможнÑе знаÑÐµÐ½Ð¸Ñ language
никогда не бÑли ÑÑандаÑÑизиÑованÑ. ÐмеÑÑо него ÑледÑÐµÑ Ð¸ÑполÑзоваÑÑ Ð°ÑÑибÑÑ type
.
ÐÐ»ÐµÐ¼ÐµÐ½Ñ <script>
без ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð°ÑÑибÑÑов async
, defer
или type="module"
, а Ñакже вÑÑÑоеннÑй ÑкÑипÑ, загÑÑжаеÑÑÑ Ð¸ вÑполнÑеÑÑÑ ÑÑазÑ, до Ñого как бÑаÑÐ·ÐµÑ Ð¿ÑÐ¾Ð´Ð¾Ð»Ð¶Ð¸Ñ ÑÐ°Ð·Ð±Ð¾Ñ Ð´Ð¾ÐºÑменÑа.
ÐÐ»Ñ Ð¾Ð±ÑабоÑки ÑкÑÐ¸Ð¿Ñ Ð´Ð¾Ð»Ð¶ÐµÐ½ имеÑÑ Ñип даннÑÑ
text/javascript
, но бÑаÑзеÑÑ ÑниÑÑ
одиÑелÑÐ½Ñ Ð¸ блокиÑÑÑÑ Ð¾Ð±ÑабоÑÐºÑ ÑолÑко в Ñом ÑлÑÑае, еÑли ÑкÑÐ¸Ð¿Ñ Ð¿ÑедÑÑавлÑÐµÑ Ð´Ð°Ð½Ð½Ñе одного из Ñипов: изобÑажение (image/*
); видео (video/*
); аÑдио (audio/*
); или text/csv
. ÐÑли ÑкÑÐ¸Ð¿Ñ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñован, ÑлеменÑÑ Ð¾ÑпÑавлÑеÑÑÑ ÑобÑÑие error
, еÑли не бÑло оÑпÑавлено ÑобÑÑие load
.
ÐÑи пÑимеÑÑ Ð¿Ð¾ÐºÐ°Ð·ÑваÑÑ ÐºÐ°Ðº импоÑÑиÑоваÑÑ ÑкÑÐ¸Ð¿Ñ Ð¸ÑполÑзÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ <script>
в HTML4 и HTML5.
<!-- HTML4 -->
<script type="text/javascript" src="javascript.js"></script>
<!-- HTML5 -->
<script src="javascript.js"></script>
ФолбÑк-модÑлÑ
ÐÑаÑзеÑÑ, поддеÑживаÑÑие иÑполÑзование знаÑÐµÐ½Ð¸Ñ module
Ð´Ð»Ñ Ð°ÑÑибÑÑа type
, игноÑиÑÑÑÑ Ð»ÑбÑе ÑкÑипÑÑ Ñ Ð°ÑÑибÑÑом nomodule
. ÐÑо ÑазÑеÑÐ°ÐµÑ Ð¸ÑполÑзоваÑÑ Ð¼Ð¾Ð´ÑлÑнÑе ÑкÑипÑÑ, и в ÑÐ¾Ñ Ð¶Ðµ ÑамÑй Ð¼Ð¾Ð¼ÐµÐ½Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¸ÑполÑзоваÑÑ nomodule-
ÑкÑипÑÑ Ð´Ð»Ñ Ð±ÑаÑзеÑов без поддеÑжки модÑлÑнÑÑ
ÑкÑипÑов.
<script type="module" src="main.mjs"></script>
<script nomodule src="fallback.js"></script>
СпеÑиÑикаÑии СовмеÑÑимоÑÑÑ Ñ Ð±ÑаÑзеÑами СмоÑÑиÑе Ñакже
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4