Zdarzenia#
Typ abort#
Typ: | abort |
---|---|
Interfejs: | UIEvent jeśli generowane z interfejsu użytkownika, w przeciwnym razie Event. |
Sync / Async: | Sync |
Bąbelkowanie | Nie |
Zaufane cele | defaultView , Element |
Anulowanie | Nie |
Domyślna akcja | Brak |
Kontekst (zaufane zdarzenia) |
|
Zdarzenie typu abort
musi zostać wysłane przez aplikację kliencką w chwili, kiedy wczytywanie zasobu zostało wstrzymane, np. przez użytkownika przerywającego wczytywanie, gdy jest ono jeszcze w toku.
W przypadku HTML5 zdarzenie typu abort
jest automatycznie odpalane przez przeglądarki internetowe dla elementów multimedialnych (np. <audio>
i <video>
) oraz obiektu Window
(algorytm przerywania wywoływany w kroku 9 i 12 algorytmu nawigowania czy w kroku 3 algorytmu porzucania).
Z praktycznego punktu widzenia wstrzymanie ładowania zasobu można uzyskać poprzez:
- Wciśnięcie klawisza
Escape
. - Klikając w przeglądarce na specjalny przycisk w okolicach paska adresowego (najczęściej symbolizowany przez znak
X
). - Klikając w przycisk
STOP
dla elementów multimedialnych (jeśli panel kontrolny widoczny). - Wywołując metodę
Window.stop()
.
Prosty przykład:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<p>
<img src="http://help.dottoro.com/external/examples/common/images/large.bmp" alt="" width="200px" height="150px">
</p>
<p>Przerwij wczytywanie zdjęcia (rozmiar 20,2 MB) poprzez wciśnięcie klawisza Escape.</p>
<p style="color: blue;">Szczegółowe informacje dla przechwyconego zdarzenia:</p>
<p id="info"></p>
<script>
var info = document.getElementById("info");
var img = document.getElementsByTagName("img")[0];
function readInfo(e){
var data = "Interfejs: " + e
+ "<br>" + "e.type: " + e.type
+ "<br>" + "e.currentTarget: " + e.currentTarget
+ "<br>" + "e.target: " + e.target
+ "<br>" + "e.eventPhase: " + e.eventPhase + "<br><br>";
info.innerHTML = info.innerHTML + data;
}
// Przechwyt zdarzenia sygnalizującego przerwanie wczytywania zdjęcia
img.addEventListener("abort", readInfo, false);
window.addEventListener("abort", readInfo, true);
document.addEventListener("abort", readInfo, true);
window.addEventListener("abort", readInfo, false); // uchwyt nie zostanie wywołany
document.addEventListener("abort", readInfo, false); // uchwyt nie zostanie wywołany
</script>
</body>
</html>
Na chwilę obecną większość aktualnych przeglądarek nie wspiera zdarzenia typu abort
. Wyjątkiem będzie IE11, ale ze względu na skomplikowane i przeplatające się algorytmy ciężko ustalić, czy robi to właściwie. Opis zostanie zweryfikowany w późniejszym czasie.