4

ZRSSFeed JQuery は、スタンドアロンの場合は正常に動作しますが、JQuery タブを使用して iFrame に配置すると、IE 9 でクラッシュします。(iFrame に JQuery の競合があってはいけないと思いましたか?)

ここで見ることができます: http://jsfiddle.net/VMfXr/

URL をコピーして IE に貼り付けるだけで、IE 9 が強制的に閉じられます。助けがあれば感謝します。

または次のコード:

<div class="widget_container"> <div class="widget_container_inner">
            <ul class='tabs'>
                <li><a href="#tab1">Tab1</a></li>
                <li><a href="#tab2">Tab2</a></li>
                <li><a href="#tab3">JQuery Blog</a></li>
            </ul>
            <div id='tab1'>
            <Script>window.console && console.log('tab1');</script></div>
            <div id='tab2'>
            <Script>window.console && console.log('tab2');</script>
            </div>
            <div id='tab3'> <Script>window.console && console.log('tab3');</script>
                <iFrame src="http://www.iframeURL.com" style="width:320px; height:330px; overflow:hidden" frameborder="0" scrolling="no"></iFrame>
            </div>
        </div> </div>

<script type="text/javascript">     
        jQuery.noConflict();
        (function($) {                                           
           jQuery(document).ready(function($) {         
               jQuery('ul.tabs').each(function(){           
                   var $active, $content, $links = $(this).find('a');
                   $active = $($links.filter('[href="'+location.hash+'"]')[0] || $links[0]);            
                   $active.addClass('active');          
                   $content = $($active.attr('href'));

               $links.not($active).each(function () {
                $($(this).attr('href')).hide();             });

            jQuery(this).on('click', 'a', function(e){
                $active.removeClass('active');
                $content.hide();
                $active = $(this);
                $content = $($(this).attr('href'));
                $active.addClass('active');
                $content.show();
                e.preventDefault();             
                     });        
                 });    
            }); 
       })(jQuery); </script>

ありがとう、

4

2 に答える 2

2

これは、jquery.vticker.js ファイルが非表示のときに iframe で実行された結果です。これは、最近の更新による IE9 のバグのようです。IE でアクセス違反が発生しています。これは、非表示の i フレームに対してガベージ コレクターが正しく機能していないことが原因である可能性があります。とにかく、バグを修正するには、http://www.sp.edu.sg/schools/dmit/widgets/ticker/blog/blog_widget_dbit で参照されている jquery.vticker.js から次のコード行をコメントアウトします。 html

obj.children('ul').children('li').each(function() {
    $(this).height(maxHeight);
});

obj.height(maxHeight * options.showItems);

これは、2012 年 11 月 13 日に公開されたセキュリティ更新プログラムである Microsoft KB2761451 に関連しているようです。

于 2012-11-21T22:25:02.060 に答える
0

私の会社は自社製品にこの問題があり、Microsoft にサポート チケットを開いて問題を修正しました。最後のパッチは、IE9 のクラッシュを防止するはずです。

于 2012-12-17T15:17:29.427 に答える