zrssfeed JQUery在IE 9上崩溃,强行关闭

时间:2012-11-19 08:41:09

标签: jquery iframe tabs rss internet-explorer-9

ZRSSFeed JQuery如果独立工作正常,但是一旦我把它放在带有JQuery选项卡的iFrame中,它就会崩溃。 (我以为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>

谢谢,

2 个答案:

答案 0 :(得分:2)

这是您在隐藏时在iframe中运行的jquery.vticker.js文件的结果。这似乎是IE9中最近更新的一个错误。发生的事情是IE正在获取访问冲突,这可能是垃圾收集器在隐藏的i帧上无法正常工作的结果。无论如何,要修复该错误,您可以注释掉http://www.sp.edu.sg/schools/dmit/widgets/ticker/blog/blog_widget_dbit.html引用的jquery.vticker.js中的以下代码行

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

obj.height(maxHeight * options.showItems);

这似乎与Microsoft KB2761451有关,这是2012年11月13日发布的安全更新。

答案 1 :(得分:0)

我的公司在我们的产品中遇到此问题,与微软公司开了一张支持票,他们修复了这个问题。最后一个补丁应该阻止IE9崩溃。