jQuery:代码在 Firefox 中有效,但在 IE 中无效

Posted

技术标签:

【中文标题】jQuery:代码在 Firefox 中有效,但在 IE 中无效【英文标题】:jQuery: Code works in Firefox but not in IE 【发布时间】:2011-12-17 12:39:54 【问题描述】:

下面的代码应该同步两个 iFrame 的水平滚动条。 它适用于 Firefox,但不适用于 IE。 在 IE 中,没有进入 ifr1.scroll() 函数。

<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>

【问题讨论】:

-1。什么不起作用?你试过什么?你有任何错误吗?请不要只发布代码。 “代码在 Firefox 中有效,但在 IE 中无效”——通常是这种情况 @swatkins,但这种情况除外。我很惊讶它完全有效。 从代码示例中可以清楚地看到他所说的“不起作用”是什么意思。该代码只做两件事,而且它们几乎完全相同。 为什么不用 $(document).ready() 而不是 window.load 【参考方案1】:

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

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

你只需要:

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

【讨论】:

不,这样 OP 就不必稍后在代码中执行 $(ifr1) 和 $(irf2)。 IE的问题是没有进入ifr1.scroll()函数。【参考方案2】:
<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>

【讨论】:

以上是关于jQuery:代码在 Firefox 中有效,但在 IE 中无效的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 上的 Jquery Form.submit() 有效,但在 Firefox 中无效

jquery cycle.js 分页器图形在 Safari、Firefox、Chrome 和 Opera 中工作,但在 IE 中消失

new Date() 在 Chrome 中有效,但在 Firefox 中无效

以下 JavaScript 似乎在 Firefox 中有效,但在 Chrome 中无效?

简单的 ColdFusion 脚本在 IE 中有效,但在 Firefox 中无效?

音频下载链接在 Firefox 中有效,但在 Chrome 中流式传输