2017-05-18 1 views
0

J'ai deux iFrames sur une page Wordpress qui se rafraîchissent automatiquement toutes les 10 secondes, et je veux compenser le temps qu'ils rafraîchissent de 5 secondes. J'ai eu l'idée de charger un iframe lorsque la page est chargée, et de charger le second iframe après un délai de 5 secondes.Charger la source d'un iFrame après un délai

Jusqu'à présent, le code suivant attend 5 secondes à afficher la deuxième iframe, mais ils se terminent tout de même en même temps.

J'ai travaillé toute la journée sur ce sujet, et j'ai l'impression qu'il me manque quelque chose de vraiment simple.

<iframe width="100%" id="delayFrame" src="http://example.com"></iframe> 

Voici le jQuery:

jQuery(function($){ 
jQuery("#delayFrame").slideUp(300).delay(5000).fadeIn(400); }); 

Voici le code que les iFrames utilisent pour rafraîchir, situé dans le fichier source lui-même:

<script type="text/javascript"> 
$(document).ready(function() { 
    var refreshId = setInterval(function() { 
    var fadeInData = function fadeInData() { $("#responsecontainer").fadeIn(); } 
    var delaydata = function delayData(){$("responsecontainer").delay('5000');} 
    var loadData = function loadData() { $("#responsecontainer").load('display.php', fadeInData); } 
    $("#responsecontainer").fadeOut(loadData); 
    }, 10000); 
$.ajaxSetup({ cache: false }); 


}); 

Répondre

0

J'étais capable de comprendre cela avec un peu d'aide, alors je réponds à ma propre question. Si le fichier iframe a une fonction .setTimeout à l'intérieur du fichier, le fichier lui-même doit être chargé à un moment différent du reste de la page, et la manière la plus simple de le faire est de changer la source de l'iframe.

Voici le code HTML:

<IFRAME id="delayFrame" src="" width="100%" height="500 style="display:none;"> 
</IFRAME> 

Et le jQuery:

jQuery(function($){ 
setTimeout(
    function() 
    { 
    jQuery('#delayFrame').css("display", "block"); 
    jQuery('#delayFrame').attr('src','http://example.com'); 
    }, 5000); 
}); 

Maintenant, les commutateurs de style d'affichage de "none" à "bloc" au bout de 5 secondes, puis l'iframe change la source, donc .setTimeout à l'intérieur de l'iFrame commence à partir du début.