【问题标题】:bgiframe with jquery browser带有 jquery 浏览器的 bgiframe
【发布时间】:2014-01-31 15:51:30
【问题描述】:

这是我使用 jQuery 1.5 版本的旧 jQuery 代码。作品

jQuery.fn.ShowPageMask = function() { 
    var maskHeight = $(document).height(); 
    if ($.browser.msie && parseInt($.browser.version) < 7) { 
        $('#pageMask').bgiframe(); 
    } 

    $('#pageMask').css({ 'filter': "alpha(opacity=50)" }); 
    $('#pageMask').css({ '-moz-opacity': "0.6" }); 
    $('#pageMask').css({ '-khtml-opacity': "0.6" }); 
    $('#pageMask').css({ 'opacity': "0.6" }); 
    $('#pageMask').show(); 
    $(window).resize(function() { 
        $('#pageMask').setFullWidth(); 
    });

现在我们最近更新到 jQuery 1.9.1 并收到错误 $.browser

在这里,我们应该检查功能支持,而不是检查浏览器版本和名称。但我真的不明白,我该如何检查下面的场景与功能.. 我应该检测什么功能?

if ($.browser.msie && parseInt($.browser.version) < 7) { 
    $('#pageMask').bgiframe(); // why the hell it is for IE<7
} 

【问题讨论】:

    标签: javascript jquery bgiframe


    【解决方案1】:

    您有多种选择:

    1) 除非您仍然需要支持 IE6,否则您可以删除以下三行:

    if ($.browser.msie && parseInt($.browser.version) < 7) { 
        $('#pageMask').bgiframe(); 
    } 
    

    2) 该插件的当前版本已经测试了 IE 6,默认情况下,仅当浏览器为 IE 6 时才处于活动状态。它使用 userAgent 字符串来识别 IE 6。

    所以,你可以改变这个:

    if ($.browser.msie && parseInt($.browser.version) < 7) { 
        $('#pageMask').bgiframe(); 
    } 
    

    仅此:

    $('#pageMask').bgiframe(); 
    

    而且,对于不是 IE 6 的浏览器,它根本不会做任何事情。


    3) 如果您想使用特征检测,您需要针对此插件试图修复的问题设计一种特征检测算法。如果问题存在,那么使用插件。如果问题不存在,那么您不需要插件。我不太明白插件试图解决什么问题,所以我不知道如何在这里给你建议。

    【讨论】:

      猜你喜欢
      • 2013-06-04
      • 2011-06-29
      • 1970-01-01
      • 1970-01-01
      • 2010-09-14
      • 2013-04-18
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      相关资源
      最近更新 更多