2012-01-22 4 views
9

Donc j'ai iframe et je télécharge des fichiers à travers elle, alors ma question est de savoir comment puis-je l'arrêter au milieu du chargement? J'ai essayé de changer src avec la fonction de jquery attr() mais je n'ai pas fait tout bon, je pense enlever l'iframe entier avec js mais cela me créerait d'autres problèmes et je ne suis même pas sûr si cela fonctionnerait. Alors y a-t-il d'autres façons de le faire?Arrêtez iframe de chargement

Ma prochaine question serait, est-il possible de cacher les indicateurs de chargement afin de ne pas confondre les utilisateurs que la page est en train de charger ou quelque chose.

Les réponses comme vous devriez utiliser le flash ou d'autres choses ne seront pas acceptées j'ai déjà fait tout avec iframe j'ai juste besoin de faire ces 2 choses.

Voici mon code iframe:

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

Avez-vous essayé de changer le src en utilisant' docu ment.location'? –

+0

@michielvoo pouvez-vous être plus précis, j'ai essayé de le faire comme ceci 'document.getElementById ('myId'). Location =" # "' ofc j'ai donné mon id iframe 'myId' mais cela n'a pas fonctionné – Linas

+1

Cela devrait être 'document.getElementById ('myId'). Document.location'. Et je ne pense pas que "" # "fonctionnera. Vous devrez naviguer vers un autre emplacement pour annuler l'opération à l'intérieur de l'iframe, mais '#' est juste une ancre sans nom dans la page en cours. Mais dans l'ensemble, vous feriez mieux d'utiliser la réponse donnée ci-dessous par Rick Kuipers. –

Répondre

16

Je crois que ce qui suit répond à votre question: https://stackoverflow.com/a/2207589/1157493

Pour FireFox/Safari/Chrome vous pouvez utiliser window.stop():

Pour IE, vous pouvez faire la même chose avec document.execCommand ('Stop'):Pour IE, vous pouvez faire la même chose avec document.execCommand ('Stop'):
window.frames[0].document.execCommand('Stop') 

Pour une solution multi-navigateur, vous pouvez utiliser:

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

Si vous souhaitez l'iframe pour aller vers une autre page, vous pouvez essayer de le rediriger vers « about: blank "

+0

Merci cela a fonctionné , maintenant comment puis-je supprimer cet indicateur de chargement ennuyeux afin que l'utilisateur ne verrait pas cette page est en cours de chargement? – Linas

+0

Pouvez-vous expliquer de quel indicateur de chargement vous parlez? Si nous parlons de curseurs, l'utilisation de CSS 'cursor: default;' résoudrait cela. –

+0

non je parle de tout ce qui montre que la page est chargée par exemple dans firefox dans le coin inférieur droit il y a une boîte qui montre tous les éléments étant bien chargés, vous savez ce que je veux dire ... je veux le faire il semblerait que j'utilise ajax mais je ne suis pas vraiment – Linas

6

Cela fonctionne pour moi (IE, Chrome, FF, Opera):

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

c'est en fait une bonne solution lorsque vous n'avez rien à voir avec la page et son URL, et l'image (iframe) est sur un autre domaine. ** la version pure js: ** 'document.getElementsByTagName ('iframe') [0] .src =" about: blank ";' rappelez-vous que vous ne pouvez pas utiliser les 'frames [0]' car cela vous donne le 'window' dans l'iframe, pas l'élément iframe dans votre page avec l'attribut' src'. – Unicornist

Questions connexes