2011-10-28 4 views
-5

Le code ci-dessous est censé synchroniser les barres de défilement horizontales de deux iFrame. Cela fonctionne dans Firefox mais ne fonctionne pas dans IE. Dans IE, la fonction ifr1.scroll() n'est pas entrée.jQuery: Le code fonctionne dans Firefox mais pas dans IE

<SCRIPT> 
$(window).load(function(){ 

    var ifr1 = $($('#UserQueue_Header').contents()); 
    var ifr2 = $($('#UserQueue_Detail').contents()); 

    ifr1.scroll(function(){  
    ifr2.scrollLeft(ifr1.scrollLeft()); 
    }); 

    ifr2.scroll(function(){ 
    ifr1.scrollLeft(ifr2.scrollLeft()); 
    }); 
}); 
</SCRIPT> 

<iframe src="test.html" id="UserQueue_Header"></iframe> 
<iframe src="test.html" id="UserQueue_Detail"></iframe> 
+4

-1. Qu'est-ce qui ne fonctionne pas? Qu'avez-vous essayé? Avez-vous des erreurs? S'il vous plaît ne pas simplement poster du code. – maxedison

+0

"Le code fonctionne dans Firefox mais pas dans IE" - c'est généralement le cas – swatkins

+1

@swatkins, sauf dans ce cas. Je suis surpris que cela fonctionne du tout. – Sparky

Répondre

0
<SCRIPT language="javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.6.4.min.js"></SCRIPT> 

$(window).load(function(){ 

    var ifr1 = $(window.frames[0]); 
    var ifr2 = $(window.frames[1]); 

    ifr1.scroll(function(){ 

    ifr2.scrollLeft(ifr1.scrollLeft()); 
    }); 

    ifr2.scroll(function(){ 

    ifr1.scrollLeft(ifr2.scrollLeft()); 
    }); 
}); 

<frameset> 
    <frame src="test.html"/> 
    <frame src="test.html"/> 
</frameset> 
1

Vous déclarez deux fois la variable jQuery '$'. Pour ces lignes:

var ifr1 = $($('#UserQueue_Header').contents()); 
var ifr2 = $($('#UserQueue_Detail').contents()); 

Vous devez simplement:

var ifr1 = $('#UserQueue_Header').contents(); 
var ifr2 = $('#UserQueue_Detail').contents(); 
+1

Non, c'est ainsi que l'OP n'a pas à faire $ (ifr1) et $ (irf2) plus tard dans le code. –

+0

Le problème dans IE est qu'il n'entrant pas dans la fonction ifr1.scroll(). – Bruno

Questions connexes