0

这是我使用 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
} 
4

1 回答 1

0

你有几个选择:

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)如果你想使用特征检测,你需要设计一个特征检测算法来解决这个插件试图修复的问题。 如果问题存在,请使用插件。如果问题不存在,那么您不需要插件。我不太明白插件试图解决什么问题,所以我不知道如何在这里给你建议。

于 2014-01-31T16:01:22.287 回答