Ten element zawiera atrybuty globalne.
async
Dla klasycznych skryptów, jeśli atrybut async
jest obecny, to klasyczny skrypt będzie pobierany równolegle do parsowania i oceniany, gdy tylko będzie dostępny.
Dla skryptów modułowych, jeśli atrybut async
jest obecny, wtedy skrypty i wszystkie ich zależności będą wykonywane w kolejce odroczeń, dlatego będą pobierane równolegle do parsowania i oceniane tak szybko jak tylko będą dostępne.
Ten atrybut pozwala na wyeliminowanie JavaScript blokującego parser, gdzie przeglądarka musiałaby załadować i ocenić skrypty przed kontynuowaniem parsowania. defer
ma podobny efekt w tym przypadku.
Jest to atrybut typu boolean: obecność atrybutu typu boolean na elemencie reprezentuje wartość true, a brak atrybutu reprezentuje wartość false.
Zobacz Zgodność z przeglądarką, aby uzyskać uwagi na temat wsparcia dla przeglądarek. Zobacz także Skrypty async dla asm.js.
crossorigin
Normalne elementyscript
przekazują minimalne informacje do elementówwindow.onerror
dla skryptów, które nie przechodzą standardowych kontroli CORS. Aby umożliwić rejestrowanie błędów dla stron, które używają oddzielnej domeny dla mediów statycznych, użyj tego atrybutu. Zobacz atrybuty ustawień CORS, aby uzyskać bardziej opisowe wyjaśnienie jego ważnych argumentów.defer
Ten atrybut typu Boolean jest ustawiany, aby wskazać przeglądarce, że skrypt ma być wykonany po parsowaniu dokumentu, ale przed odpaleniem DOMContentLoaded
.
Skrypty z atrybutem defer
uniemożliwią wystrzelenie zdarzenia DOMContentLoaded
do czasu załadowania skryptu i zakończenia jego oceny.
Tego atrybutu nie wolno używać, jeśli atrybut src
jest nieobecny (tj.
Atrybut defer
nie ma wpływu na skrypty modułowe – są one domyślnie odraczane.
Skrypty z atrybutem defer
będą wykonywane w kolejności, w jakiej pojawiają się w dokumencie.
Ten atrybut pozwala na wyeliminowanie JavaScript blokującego parser, gdzie przeglądarka musiałaby załadować i ocenić skrypty przed kontynuowaniem parsowania. async
ma podobny efekt w tym przypadku.
integrity
Ten atrybut zawiera metadane inline, które agent użytkownika może wykorzystać do sprawdzenia, czy pobrany zasób został dostarczony bez nieoczekiwanych manipulacji. Zobacz Integralność Subzasobów.nomodule
Ten atrybut typu Boolean jest ustawiony, aby wskazać, że skrypt nie powinien być wykonywany w przeglądarkach, które obsługują moduły ES2015 – w efekcie może to być wykorzystane do serwowania skryptów awaryjnych do starszych przeglądarek, które nie obsługują modułowego kodu JavaScript.
nonce
Kryptograficzny nonce (liczba używana raz) do białej listy skryptów w script-src Content-Security-Policy. Serwer musi wygenerować unikalną wartość nonce za każdym razem, gdy przesyła politykę. Krytyczne jest dostarczenie nonce’a, który nie może być odgadnięty, ponieważ ominięcie polityki zasobu jest w innym przypadku trywialne.referrerpolicy
Określa, który referrer ma zostać wysłany podczas pobierania skryptu lub zasobów pobieranych przez skrypt:
-
no-referrer
: NagłówekReferer
nie będzie wysyłany. -
no-referrer-when-downgrade
(domyślnie): NagłówekReferer
nie będzie wysyłany do źródeł bez TLS (HTTPS). -
origin
: Wysyłany referrer będzie ograniczony do pochodzenia strony odsyłającej: jej schematu, hosta i portu. -
origin-when-cross-origin
: Odsyłacz wysyłany do innych źródeł będzie ograniczony do schematu, hosta i portu. Nawigacje w tym samym pochodzeniu będą nadal zawierać ścieżkę. -
same-origin
: Referrer zostanie wysłany dla tego samego pochodzenia, ale żądania cross-origin nie będą zawierały informacji o referrer. -
strict-origin
: Wysyłaj tylko pochodzenie dokumentu jako referrer, gdy poziom bezpieczeństwa protokołu pozostaje taki sam (np. HTTPS→HTTPS), ale nie wysyłaj go do mniej bezpiecznego miejsca docelowego (np. HTTPS→HTTP). -
strict-origin-when-cross-origin
: Wysyłaj pełny adres URL podczas wykonywania żądania tego samego pochodzenia, ale wysyłaj tylko pochodzenie, gdy poziom bezpieczeństwa protokołu pozostaje taki sam (np.HTTPS→HTTPS), i nie wysyłaj żadnego nagłówka do mniej bezpiecznego miejsca docelowego (np. HTTPS→HTTP). -
unsafe-url
: Odsyłacz będzie zawierał pochodzenie i ścieżkę (ale nie fragment, hasło lub nazwę użytkownika). Ta wartość jest niebezpieczna, ponieważ wycieka pochodzenie i ścieżki z zasobów chronionych TLS do niezabezpieczonych źródeł.
Uwaga: Wartość pustego łańcucha (""
) jest zarówno wartością domyślną, jak i wartością awaryjną, jeśli referrerpolicy
nie jest obsługiwany. Jeśli referrerpolicy
nie jest jawnie określony na elemencie <script>
, przyjmie on politykę referrer wyższego poziomu, tj. taką, która jest ustalona dla całego dokumentu lub domeny. Jeśli polityka wyższego poziomu nie jest dostępna, pusty ciąg znaków jest traktowany jako równoważny elementowi no-referrer-when-downgrade
.
src
Ten atrybut określa URI zewnętrznego skryptu; może być używany jako alternatywa dla osadzania skryptu bezpośrednio w dokumencie.
type
Ten atrybut wskazuje typ reprezentowanego skryptu. Wartość tego atrybutu będzie należała do jednej z następujących kategorii:
- Pominięty lub typ JavaScript MIME: Wskazuje to, że skrypt jest JavaScriptem. Specyfikacja HTML5 zachęca autorów do pominięcia tego atrybutu zamiast podawania zbędnego typu MIME. We wcześniejszych przeglądarkach identyfikowało to język skryptowy osadzonego lub importowanego (poprzez atrybut
src
) kodu. Typy MIME JavaScript są wymienione w specyfikacji. -
module
: Powoduje, że kod jest traktowany jako moduł JavaScript. Na przetwarzanie zawartości skryptu nie mają wpływu atrybutycharset
idefer
. Informacje na temat używaniamodule
znajdziesz w naszym przewodniku po modułach JavaScript. W przeciwieństwie do klasycznych skryptów, skrypty modułowe wymagają użycia protokołu CORS do pobierania cross-origin. - Dowolna inna wartość: Osadzona zawartość jest traktowana jako blok danych, który nie będzie przetwarzany przez przeglądarkę. Programiści muszą używać poprawnego typu MIME, który nie jest typem MIME JavaScript do oznaczania bloków danych. Atrybut
src
zostanie zignorowany.