L'evento onload dell'IFRAME si attiva quando l'HTML è completamente scaricato o solo quando vengono caricati anche tutti gli elementi dipendenti? (css/js/img)Esattamente quando viene attivato un evento di carico onload IFRAME?
risposta
Quest'ultimo: <body onload=
si attiva solo quando sono stati caricati anche tutti gli elementi dipendenti (css/js/img).
Se si desidera eseguire il codice JavaScript quando l'HTML è stato caricato, fare questo alla fine del codice HTML:
<script>alert('HTML loaded.')</script></body></html>
Ecco un relevant e-mail thread sulla differenza tra carico e pronto (jQuery supporta entrambi).
Suppongo che lo stesso sia vero per il documento principale stesso, non solo per gli iframe? – MatrixFrog
Proprio quando viene caricato il codice HTML, non gli elementi dipendenti. (o così penso).
a fuoco quando il resto la pagina viene caricata fare jQuery (finestra) .load (function() {o no window.onload documentare onReady.
È inoltre possibile controllare per vedere se un elemento immagine viene caricata e lì ... se l'immagine. load-- ecc
La risposta di cui sopra (usando evento onload) è corretto, ma in alcuni casi questo sembra comportarsi male. soprattutto quando si genera dinamicamente un modello di stampa per il web-content.
Provo a stampare determinati contenuti di una pagina creando un iframe dinamico e stampandolo. Se contiene immagini non riesco a farlo sparare n le immagini sono caricate. Si spara sempre troppo presto quando le immagini verranno comunque caricati con un conseguente stampa incompleto:
function printElement(jqElement){
if (!$("#printframe").length){
$("body").append('<iframe id="printframe" name="printframe" style="height: 0px; width: 0px; position: absolute" />');
}
var printframe = $("#printframe")[0].contentWindow;
printframe.document.open();
printframe.document.write('<html><head></head><body onload="window.focus(); window.print()">');
printframe.document.write(jqElement[0].innerHTML);
printframe.document.write('</body></html>');
// printframe.document.body.onload = function(){
// printframe.focus();
// printframe.print();
// };
printframe.document.close();
// printframe.focus();
// printframe.print();
// printframe.document.body.onload = function()...
}
come potete vedere ho provato diversi metodi per legare il gestore onLoad ... in ogni caso scatterà troppo presto. Lo so perché l'anteprima di stampa del browser (google chrome) contiene immagini spezzate. Quando annullo la stampa e richiama di nuovo quella funzione (le immagini vengono ora memorizzate nella cache), l'anteprima di stampa va bene.
... fortunatamente ho trovato una soluzione. non carino ma adatto. Che cosa fa scansiona la sottostruttura per i tag 'img' e controlla lo stato 'completo' di quelli. se incompleto ritarda un ricontrollo dopo 250 ms.
function delayUntilImgComplete(element, func){
var images = element.find('img');
var complete = true;
$.each(images, function(index, image){
if (!image.complete) complete = false;
});
if (complete) func();
else setTimeout(function(){
delayUntilImgComplete(element, func);}
, 250);
}
function printElement(jqElement){
delayUntilImgComplete(jqElement, function(){
if (!$("#printframe").length){
$("body").append('<iframe id="printframe" name="printframe" style="height: 0px; width: 0px; position: absolute" />');
}
var printframe = $("#printframe")[0].contentWindow;
printframe.document.open();
printframe.document.write(jqElement[0].innerHTML);
printframe.document.close();
printframe.focus();
printframe.print();
});
}
questo è molto utile grazie – kofifus
- 1. Trigger Promessa quando un evento viene attivato
- 2. Come bloccare fino a quando un evento viene attivato C#
- 3. Quando viene eseguito esattamente `componentDidMount`?
- 4. evento onload della finestra non attivato nello script di contenuto cromato
- 5. Lettura del contenuto Iframe in Iframe Carico
- 6. Evento onload modale Bootstrap
- 7. onload iframe non funziona quando url genera uscita pdf
- 8. jQuery onload - .load() - evento che non funziona con un iframe caricato dinamicamente
- 9. Form_Load() 'evento' o Sovrascrivi OnLoad()
- 10. Avendo attivato UIControlEventValueChanged quando viene animato UISlider?
- 11. Quando viene attivato OnActivation di Ninject?
- 12. C'è un evento "pronto" attivato quando un elemento jQuery viene creato al volo?
- 13. onload iframe in IE7/8 con Javascript
- 14. carico di Facebook in un iframe
- 15. Evento onload del modello per meteor.js
- 16. Quando viene attivato il tocco per un belongs_to in Rails?
- 17. onmousemove Evento non attivato
- 18. Scheda "mostrato" evento non viene attivato - Twitter Bootstrap
- 19. Evento PointerMoved non attivato
- 20. evento touchend in ios webkit non viene attivato?
- 21. Perché il reindirizzamento di Chrome all'URL di onload iframe?
- 22. Evento evento piattaforma ionica attivato due volte
- 23. Evento onload SVG chiamato troppo presto?
- 24. Quando overFlowToDisk viene attivato in EHCACHE?
- 25. backbone.js click evento non attivato
- 26. ComboBoxItem MouseEnter evento non attivato
- 27. evento keydown su un iframe
- 28. evento onclick che non viene attivato dopo l'evento onchange
- 29. Come richiamare un evento automaticamente quando viene chiamata una funzione?
- 30. ComponentDidMount() non viene chiamato quando viene attivato il componente reattivo
Ogni volta che non si utilizza Internet Explorer, è quando si attiva. – Tortoise
Quando non si utilizza un iDevice, si attiva, quando tutti gli elementi sono caricati. – NoBugs
@tortoise: grazie per avermi fatto sorridere. – ling