2011-10-28 166 views
-5

下面的代码应该同步两个iFrame的水平滚动条。 它适用于Firefox,但在IE中不起作用。 在IE中,它没有输入ifr1.scroll()函数。jQuery:代码适用于Firefox,但不适用于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。什么不行?你有什么尝试?你有什么错误吗?请不要只发布代码。 – maxedison

+0

“代码适用于Firefox,但不适用于IE” - 通常情况下,这种情况除外 – swatkins

+1

@swatkins。我很惊讶它的作品。 – Sparky

回答

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

你声明jQuery'$'变量两次。对于这些行:

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

您需要简单:

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

不,这样OP就不必在代码中稍后执行$(ifr1)和$(irf2)。 –

+0

IE中的问题是它没有输入ifr1.scroll()函数。 – Bruno

相关问题