Mentre Karthik's answer è meglio di un comando di sonno, e può funzionare abbastanza bene per molti siti, ho trovato che ci sono alcuni problemi che può insinuarsi soprattutto se lo si usa abbastanza spesso.
Avevo bisogno di una soluzione affidabile anch'io, che credo di aver finalmente trovato. Accedi al Chrome Web Store e aggiungi l'estensione Google Chrome denominata Control Freak
. Ciò consente di impostare facilmente blocchi di codice che possono essere attivati su una singola pagina, un intero dominio o qualsiasi sito/pagina.
Control Freak Chrome Extension
Una volta che ce l'hai caricato, fare clic sul pulsante ingranaggio della ruota ora avete per l'estensione. Fare clic nella parte superiore della finestra a comparsa nel contesto/spazio appropriato per il rilevamento del caricamento della pagina. Ad esempio All
Ora è possibile fare clic sulla scheda Libs. Scorri fino a jQuery. Puoi scegliere qualsiasi versione dalla lista che ti piace, ma ho scelto l'ultima. Si noti che l'URL per il CDN è aggiunto in fondo. Ora, dopo aver fatto clic sul pulsante Save
in fondo, avrai sempre jQuery disponibile in qualsiasi contesto.
tornare alla scheda Javascript e aggiungere questo codice, e modificare a come ti piace:
jQuery(function() {
prompt("Diagnostic: Page Status", "loaded");
});
Una volta che si fa clic su Salva, questo codice verrà eseguito davanti all'evento jQuery pronto. Ora hai un modo affidabile per rilevare il caricamento della pagina, che AHK può usare!
Con questo in posizione, è possibile avere AutoHotkey in attesa di una finestra il cui titolo inizia dicendo "The page at" ...., che sarà indubbiamente il nostro prompt, precompilato con la nostra parola "caricato". Puoi dire ad AHK di inviare un Control + c per copiarlo, quindi controllarne il valore o presumere che dal momento in cui l'hai visto, probabilmente avrai quello che ti aspettavi. Il seguente codice AHK può attendere il prompt pop-up (che potrebbe essere fatto altrettanto facilmente con un avviso btw).
clipboard=
WinWait, The page at
WinWaitActive
Send ^c
ClipWait
WinClose
; The rest here is entirely optional tooltip code, but can be useful.
tooltip, The diagnostic data provided was: %clipboard%,0,0
sleep, 1000
tooltip
Quindi cerchiamo di ottimizzare e metterlo in una funzione è possibile chiamare più e più volte:
Funzione Definizione:
waitForPageLoad()
{
WinWait, The page at
WinWaitActive
WinClose
}
Function Call:
waitForPageLoad()
Altro pensieri ..
Ora ho notato che questo codice si attiva anche nei momenti in cui la pagina non viene realmente cambiata o ricaricata, ad esempio quando l'URL della pagina potrebbe cambiare, ma lo hanno codificato in modo specifico per non uscire dalla pagina e in genere viene visualizzato nuovo contenuto lì. Questo è perfetto per i miei scopi, ma potrebbe essere filtrato impostando una specie di variabile e controllando se fosse già stata impostata (all'interno del codice JavaScript che hai aggiunto in Control Freak).
L'acceso probabilmente è per controllare se l'icona di caricamento della pagina è lì. Con una ricerca pixel puoi controllare il colore e se il colore non è il colore dell'icona di caricamento, allora viene caricato. http://www.autohotkey.com/board/topic/82884-how-to-determine-web-page-loaded-successfully/ –
Sì, puoi farlo in un altro modo, ma ha bisogno di un userscript come lo hai visto, se vorresti determinare se la pagina è caricata, quindi gli sviluppatori dovrebbero creare un codice per ogni browser possibile, che non è il migliore, puoi provare anche lo usercript, ecco perché ti ho inviato il link, la prossima volta usa google . –