2012-01-22 18 views
9

Quindi ho iframe e sto caricando i file attraverso di esso, quindi la mia domanda è come posso fermarlo nel mezzo del caricamento? Ho provato a cambiare src con la funzione jquery attr() ma non ho fatto nulla di buono, sto pensando di rimuovere l'intero iframe con js ma mi creerebbe altri problemi e non sono nemmeno sicuro che funzionerebbe. Quindi ci sono altri modi per farlo?Arresta iframe dal caricamento

La mia prossima domanda sarebbe, è possibile nascondere gli indicatori di caricamento in modo da non confondere gli utenti che la pagina sta caricando o qualcosa del genere.

Le risposte come si dovrebbe usare il flash o altre cose non saranno accettate ho già fatto tutto con iframe ho solo bisogno di fare quelle 2 cose.

Ecco il mio codice iframe:

<iframe onload="file_uploaded()" class="iframe" src="user/upload_image/" name="iframeTarget" ></iframe> 
+1

hai provato cambiando lo src usando' docu ment.location'? –

+0

@michielvoo puoi essere più specifico, ho provato a farlo in questo modo 'document.getElementById ('myId'). Location =" # "' ofc ho dato il mio id iframe 'myId' ma non ha funzionato – Linas

+1

Dovrebbe essere 'document.getElementById ('myId'). Document.location'. E non penso che '" # "' funzionerà. Dovresti navigare in un'altra posizione per annullare l'operazione all'interno dell'iframe, ma '#' è solo un'ancora senza nome all'interno della pagina corrente. Ma nel complesso, starai meglio usando la risposta fornita di seguito da Rick Kuipers. –

risposta

16

Credo che la seguente risponde alla tua domanda: https://stackoverflow.com/a/2207589/1157493

per Firefox/Safari/Chrome è possibile utilizzare window.stop():

window.frames[0].stop() 

Per IE, è possibile fare la stessa cosa con document.execCommand ('Stop'):

window.frames[0].document.execCommand('Stop') 

Per una soluzione cross-browser è possibile utilizzare:

if (navigator.appName == 'Microsoft Internet Explorer') { 
    window.frames[0].document.execCommand('Stop'); 
} else { 
    window.frames[0].stop(); 
} 

Se vuoi l'iframe per andare a una pagina diversa si potrebbe tentare di destinarli a "about: blank "

+0

Grazie ha funzionato , ora come posso rimuovere quel fastidioso indicatore di caricamento in modo che l'utente non veda che la pagina sta caricando? – Linas

+0

Puoi spiegare quale indicatore di caricamento stai parlando? Se stiamo parlando di cursori, allora usando il cursore CSS: default; 'risolverebbe questo. –

+0

no sto parlando di tutto ciò che sta mostrando che la pagina viene caricata per esempio in firefox nell'angolo in basso a destra c'è una scatola che mostra tutti gli elementi che vengono caricati bene sai cosa intendo ... voglio farlo sembrerebbe che io stia usando l'ajax ma in realtà non sono – Linas

6

Questo funziona per me (IE, Chrome, FF, Opera):

$iframe.attr('src','about:blank'); 
+2

questa è in realtà una buona soluzione quando non si ha nulla a che fare con la pagina e il suo URL, e il frame (iframe) si trova su un altro dominio. ** la versione pure js: ** 'document.getElementsByTagName ('iframe') [0] .src =" about: blank ";' ricorda che non puoi usare 'frames [0]' perché ti dà il 'window' all'interno dell'iframe, non l'elemento iframe nella tua pagina con l'attributo' src'. – Unicornist

Problemi correlati