Impromptu ..使用jquery 1.9 - 使用browser.msie时出错

Upl*_*and 10 jquery impromptu

在最新的jquery 1.9下运行时,我得到了即兴ver 4.1的错误

未捕获的TypeError:无法读取未定义的属性"msie"

以前版本的jquery不是这种情况.

即兴的违规行是第20行:

var ie6 = ($.browser.msie && $.browser.version < 7);
Run Code Online (Sandbox Code Playgroud)

JFK*_*JFK 24

您可以修改Impromptu替换此行:

var ie6 = ($.browser.msie && $.browser.version < 7);
Run Code Online (Sandbox Code Playgroud)

......这一个:

var ie6 = ( navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/6/) );
Run Code Online (Sandbox Code Playgroud)

...所以现在它可以使用jQuery v1.9.0 +.或者,您可以回滚到jQuery v1.8.3

编辑(2013年3月12日)

感谢@johntrepreneur的意见,你是对的.两个笔记:

  1. 这个编辑的行:

    var ie6 = ( navigator.userAgent.match(/msie/i) && navigator.userAgent.match(/6/) );
    
    Run Code Online (Sandbox Code Playgroud)

    ......应该被这个替换:

    var ie6 = ( navigator.userAgent.match(/msie [6]/i) );
    
    Run Code Online (Sandbox Code Playgroud)

    ......我的坏,我赶紧写补丁.这应该够了吧.

  2. Impromptu在他们的最后一次提交中完全删除了IE6支持(在原始帖子之后的2013年3月25日).OP提出的问题是Impromptu确实打破了jQuery v1.9 + ... Impromptu js文件更新到最后一个版本也解决了这个问题.


Sha*_*bot 6

我更喜欢这个定位范围,只在<IE9&jQuery 1.9+上运行代码

if (/msie [1-8]./.test(navigator.userAgent.toLowerCase()))
{
    //code here
}
Run Code Online (Sandbox Code Playgroud)