1. AppleScript source
proprietà
Potresti provare a utilizzare la proprietà di Safari source
, che è ""
finché il codice HTML non viene caricato in esso (operazione che può essere eseguita solo dopo aver caricato la pagina). Nota, tuttavia, che questo non implica necessariamente che la pagina sia stata resa :
tell application "Safari"
.
.
repeat while document 1's source = ""
delay 0.5
end repeat
.
.
end tell
La proprietà source
viene reimpostata su ""
anche tra caricamenti di pagina / ricariche.
2. Reload button UI element
Se vuoi sapere che una pagina è caricata e renderizzata sullo schermo, allora un metodo affidabile è determinare se il pulsante nella barra degli indirizzi è un pulsante "ricarica" (pagina caricata e renderizzata ), o un pulsante "Annulla" (pagina ancora in caricamento / rendering):
tell application "System Events" to repeat until exists (buttons of ¬
UI elements of groups of toolbar 1 of window 1 of ¬
process "Safari" whose name = "Reload this page")
delay 0.5
end repeat
3. JavaScript readyState
proprietà
Se hai Consenti JavaScript di Apple Events spuntato nel menu Sviluppa , puoi accedere alla proprietà readyState
di document
:
tell application "Safari"
.
.
tell document 1 to repeat
do JavaScript "document.readyState"
if the result = "complete" then exit repeat
delay 0.5
end repeat
.
.
end tell
La proprietà JavaScript document.readyState
restituisce uno dei cinque valori:
-
uninitialized
: non ha ancora iniziato a caricare
-
loading
: sta caricando
-
loaded
: è stato caricato
-
interactive
: ha caricato abbastanza e l'utente può interagire con esso
-
complete
: Completamente caricato