Comment faire pour forcer un iFrame pour recharger une fois qu'il se charge
J'ai de nombreux iframes que contenu spécifique de charge sur mes pages. À la fois le parent et l'iframe sont sur le même domaine.
J'ai une barre de défilement à l'intérieur de l'iframe qui ne semble pas se charger correctement dans tous les navigateurs. Mais lorsque j'actualise l'iframe, il charge parfaite. Je n'ai aucune idée de pourquoi il le fait.
J'ai utilisé le meta refresh, qui fonctionne, mais je ne veux pas la page pour actualiser en permanence, juste une fois.
La solution, je suis à la recherche pour recharger le contenu de l'iFrame après l'iFrame est ouvert, avec un peu de retard.
Merci pour votre temps et de votre aide!
-Brett
----------MODIFIER:--------
J'ai réalisé que ma page se charge toutes mes iframes lorsque l'index est chargé. Le iframes apparaissent dans un jQuery overlay, qui est également chargé, mais visibility:hidden jusqu'appelé. Donc, sur cet appel, c'est quand je veux l'iframe pour être rechargé.
Quelqu'un pourrait-il m'aider à venir avec une fonction Javascript qui recharge l'iFrame lorsque je clique sur le lien de l'iFrame? J'ai obtenu près mais je n'y connais rien en js et je continue de tomber à court. J'ai une fonction qui recharge la page, mais je ne peux pas comprendre comment l'avoir appelé une seule fois.
J'ai jusqu'à présent:
<script type="text/javascript">
var pl;
var change;
pl=1;
function ifr() {
if (pl=1) {
document.location.reload([true]);
alert("Page Reloaded!");
change=1;
return change;
}
change+pl;
}
Donc, fondamentalement, il utilise le document.emplacement.recharge qui fonctionne à recharger la page. Je suis en train de faire puis pl changer pour autre chose que 1, donc la fonction ne marche pas à courir de nouveau. J'ai appelé le JS du corps, avec onLoad.
OriginalL'auteur Brett | 2011-10-21
Vous devez vous connecter pour publier un commentaire.
Tous les fils sur cette allés morts, mais j'ai trouvé un extrait de code qui ont travaillé. Pas écrit par moi, et je ne me souviens pas d'où il vient. Seulement l'affichage de l'aide de quelqu'un si jamais ils ont la même question.
Fondamentalement juste de charge de la source iFrame lorsque la fenêtre avec l'iFrame s'ouvre, par opposition à l'iFrame de chargement lorsque le chargement de la page.
OriginalL'auteur Brett
Au-delà de la portée de la question d'origine, mais cette jQuery snippit travaille avec la croix de domaine iframe éléments où la contentDocument.emplacement.reload(true) méthode ne sera pas en raison de bac à sable.
Fondamentalement, il remplace l'ensemble de l'élément iframe avec une copie de lui-même. Nous l'utilisons pour la force de redimensionner intégré 3ème partie de la "bête" widgets comme la vidéo de joueurs qui n'ont pas remarqué quand leur taille change.
OriginalL'auteur John Pettitt
Sur l'élément iframe lui-même, définir un onload:
(Ne fonctionne que si l'iframe est dans le même domaine que la page principale)
this
au lieu deiframe
dans le gestionnaire d'événement, dans le cas de la variableiframe
est écrasée.Bon point. Modifier. (J'ai l'habitude de beaucoup de fermetures, de sorte que les noms de variables sont très peu susceptibles d'être remplacés :p)
merci pour la réponse rapide les gars! l'iframe charges about.html et le parent est index.php. Dois-je mettre ce code dans l'en-tête de about.html à l'intérieur <script> tag?
dans la page parent. Cette réponse n'est pas vraiment clair où le mettre, car l'ensemble de l'iframe.onload vous devez attendre jusqu'à ce que l'iframe est dans le DOM, mais si vous attendez pour les parents "charge" de l'événement, l'iframe peut ou peut être déjà chargé en ce moment.
Non testé idée est de mettre <iframe onload="reloadOnce(this)"> en HTML; faire la reloadOnce contrôle du fonctionnement d'un drapeau, puis, si elle n'est pas définie, le définir et de le recharger l'image.
OriginalL'auteur Niet the Dark Absol
Voici une solution complète à la question initiale:
La mise à jour de la question n'est pas vraiment clair (ce qui est "le lien de l'iFrame" et où est-il dans votre extrait de code?), mais vous avez quelques problèmes avec le code:
parent.
variableName - qui devrait fonctionner je pense)if (pl=1) {
doit utiliser==
, comme=
est toujours une tâche.change+pl;
n'a aucun effet.J'ai essayé de mettre votre code, mais ça ne fonctionne pas. Ai-je mettre en œuvre correctement?
code <iframe height="425px" width="830px" scrolling="no" frameborder="0" src="about-homeopathy.html" onload="reloadOnce(this)"></iframe>
code <script> var iframeLoadCount = 0; function reloadOnce(iframe) { iframeLoadCount ++; if (iframeLoadCount <= 1) { iframe.contentWindow.location.reload(); console.log("reload()"); } } </script>
Cela fonctionne pour moi - j'ai ajouté le script juste au-dessus de l'iframe et alors que l'attribut onload. A travaillé comme un charme!
OriginalL'auteur Nickolay