1、错误描述
Uncaught TypeError: Cannot read property 'msie' of undefined
TypeError: a.browser is undefined
2、错误原因
(function(a){ a.alerts={verticalOffset:-75,horizontalOffset:0,repositionOnResize:true,overlayOpacity:1,overlayColor:"rgba(0, 0, 0, 0.25) none repeat scroll 0 0",draggable:true,okButton:" \u786e\u5b9a ",cancelButton:" \u53d6\u6d88 ",dialogClass:null,alert:function(b,c,d){if(c==null){c="\u63d0\u793a"}a.alerts._show(c,b,null,"alert",function(e){if(d){d(e)}},null,null,null,null)}, confirm:function(b,c,d){ if(c==null){c="\u8bf7\u786e\u8ba4"} a.alerts._show(c,b,null,"confirm",function(e){ if(d){d(e)}},null,null,null,null)}, prompt:function(b,c,d,e){ if(d==null){d="\u8bf7\u586b\u5199"} a.alerts._show(d,b,c,"prompt",function(f){ if(e){e(f)}},null,null,null,null)}, openBox:function(f,g,b,c,e,d,i){ if(g==null){g="\u63d0\u793a"} a.alerts._show(g,f,null,"openBox",function(h){ if(i){i(h)}},b,c,e,d)}, overAlert:function(c,b){ a.alerts._overShow(c,b)}, _overShow:function(d,c){ if(c==null){c=3000} var b=c+600; a("body").append('<div id="over_container" style="display:none"><div id="over_message"></div></div>');a("#over_message").text(d).html(a("#over_message").text().replace(/\n/g,"<br />")); if(a.alerts.dialogClass){ a("#over_container").addClass(a.alerts.dialogClass)} var e=(a.browser.msie&&parseInt(a.browser.version)<=6)?"absolute":"fixed"; a("#over_container").css({position:e,zIndex:99999,width:350,padding:0,margin:0}).show("fast"); a("#over_container").css({minWidth:a("#over_container").outerWidth(),maxWidth:a("#over_container").outerWidth()}); a.alerts._overReposition(); setTimeout(function(){a("#over_container").hide("fast")},c); setTimeout(function(){a("#over_container").remove()},b)}, _overReposition:function(){ var c=4; var b=((a(window).width()/2)-(a("#over_container").outerWidth()/2))+a.alerts.horizontalOffset; if(c<0){c=0}if(b<0){b=0}if(a.browser.msie&&parseInt(a.browser.version)<=6){c=c+a(window).scrollTop()} if(a.browser.msie&&parseInt(a.browser.version)<=6){b=b-175} a("#over_container").css({top:200+"px",left:b+"px"}); a("#popup_overlay").height(a(document).height())},_show: function(j,b,k,g,m,l,c,f,n){ a.alerts._hide(); a.alerts._overlay("show"); a("body").append('<div id="popup_container" style="display:none"><h1 id="popup_title"></h1><em id="ctl"></em><em id="cbl"></em><em id="ctr"></em><em id="cbr"></em><span id="popup_close"></span><div id="popup_content"><div id="popup_message"></div></div></div>'); if(a.alerts.dialogClass){ a("#popup_container").addClass(a.alerts.dialogClass)}var i=(a.browser.msie&&parseInt(a.browser.version)<=6)?"absolute":"fixed";a("#popup_container").css({position:i,zIndex:99999,padding:0,margin:0}).fadeIn("fast");a("#popup_title").text(j); a("#popup_content").addClass(g);if(g!="openBox"){ a("#popup_message").text(b).html( a("#popup_message").text().replace(/\n/g,"<br />"))} a("#popup_container").css({});a.alerts._reposition();a.alerts._maintainPosition(true); switch(g){ case"alert":a("#popup_message").after('<div id="popup_panel"><input type="button" class="btn" value="'+a.alerts.okButton+'" id="popup_ok" /></div>'); a("#popup_ok").click(function(){a.alerts._hide();m(true)}); a("#popup_ok").focus().keypress(function(h){ if(h.keyCode==13||h.keyCode==27){ a("#popup_ok").trigger("click") } }); break; case"confirm": a("#popup_message").after('<div id="popup_panel"><input type="button" class="btn" value="'+a.alerts.okButton+'" id="popup_ok" /><span style="margin:5px"></span><input type="button" class="btn" value="'+a.alerts.cancelButton+'" id="popup_cancel" /></div>');a("#popup_ok").click(function(){a.alerts._hide();if(m){m(true)}}); a("#popup_cancel").click(function(){a.alerts._hide();if(m){m(false)}}); a("#popup_ok").focus(); a("#popup_ok, #popup_cancel").keypress(function(h){ if(h.keyCode==13){a("#popup_ok").trigger("click")} if(h.keyCode==27){a("#popup_cancel").trigger("click")}}); break; case"prompt": a("#popup_message").append('<br /><input type="text" size="30" id="popup_prompt" />').after('<div id="popup_panel"><input type="button" value="'+a.alerts.okButton+'" id="popup_ok" /><input type="button" value="'+a.alerts.cancelButton+'" id="popup_cancel" /></div>');a("#popup_prompt").width(a("#popup_message").width()-10); a("#popup_ok").click(function(){var e=a("#popup_prompt").val();a.alerts._hide();if(m){m(e)}}); a("#popup_cancel").click(function(){a.alerts._hide();if(m){m(null)}}); a("#popup_prompt, #popup_ok, #popup_cancel").keypress(function(h){if(h.keyCode==13){a("#popup_ok").trigger("click")}if(h.keyCode==27){a("#popup_cancel").trigger("click")}}); if(k){a("#popup_prompt").val(k)}a("#popup_prompt").focus().select();break;case"openBox":a("#popup_message").append(a(b).html());if(l){a("#popup_container").css({width:l+"px"})}if(c){a("#popup_container").css({height:c+"px"});a("#popup_message").css({height:(c-48)+"px"})}a.alerts._reposition(); if(f){a(f).click(function(){a.alerts._hide();if(m){m(true)}})}if(n){a(n).click(function(){a.alerts._hide();return false;if(m){m(false)}})}break}a("#popup_close").click(function(){a.alerts._hide();if(m){m(false)}}); if(a.alerts.draggable){try{a("#popup_container").draggable({handle:a("#popup_title")}); a("#popup_title").css({cursor:"move"})}catch(d){}}},_hide:function(){a("#popup_container").remove();a.alerts._overlay("hide");a.alerts._maintainPosition(false)},_overlay:function(b){switch(b){case"show":a.alerts._overlay("hide");a("BODY").append('<div id="popup_overlay"></div>'); a("#popup_overlay").css({position:"absolute",zIndex:99998,top:"0px",left:"0px",width:"100%",height:a(document).height(),background:a.alerts.overlayColor,opacity:a.alerts.overlayOpacity});break;case"hide":a("#popup_overlay").remove();break}},_reposition:function(){var c=((a(window).height()/2)-(a("#popup_container").height()/2))+a.alerts.verticalOffset; var b=((a(window).width()/2)-(a("#popup_container").width()/2))+a.alerts.horizontalOffset; if(c<0){c=0}if(b<0){b=0} if(a.browser.msie&&parseInt(a.browser.version)<=6){c=c+a(window).scrollTop()} a("#popup_container").css({top:c+"px",left:b+"px"}); a("#popup_overlay").height(a(document).height())}, _maintainPosition:function(b){ if(a.alerts.repositionOnResize){ switch(b){ case true:a(window).bind("resize",a.alerts._reposition);break; case false:a(window).unbind("resize",a.alerts._reposition);break}}} }; hiAlert=function(b,c,d){a.alerts.alert(b,c,d)}; hiConfirm=function(b,c,d){a.alerts.confirm(b,c,d)}; hiPrompt=function(b,c,d,e){a.alerts.prompt(b,c,d,e)}; hiBox=function(f,g,b,c,e,d,i){a.alerts.openBox(f,g,b,c,e,d,i)}; hiOverAlert=function(c,b){a.alerts.overAlert(c,b)}})(jQuery);代码中的下面代码出现报错
var i=(a.browser.msie&&parseInt(a.browser.version)<=6)?"absolute":"fixed";a("#popup_container").css({position:i,zIndex:99999,padding:0,margin:0}).fadeIn("fast");a("#popup_title").text(j);错误原因是:jquery-1.9.1.min.js去掉了$.browser方法
3、解决办法
将以下代码新建一个js文件并引入到页面中
(function(jQuery){ if(jQuery.browser) return; jQuery.browser = {}; jQuery.browser.mozilla = false; jQuery.browser.webkit = false; jQuery.browser.opera = false; jQuery.browser.msie = false; var nAgt = navigator.userAgent; jQuery.browser.name = navigator.appName; jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion); jQuery.browser.majorVersion = parseInt(navigator.appVersion,10); var nameOffset,verOffset,ix; // In Opera, the true version is after "Opera" or after "Version" if ((verOffset=nAgt.indexOf("Opera"))!=-1) { jQuery.browser.opera = true; jQuery.browser.name = "Opera"; jQuery.browser.fullVersion = nAgt.substring(verOffset+6); if ((verOffset=nAgt.indexOf("Version"))!=-1) jQuery.browser.fullVersion = nAgt.substring(verOffset+8); } // In MSIE, the true version is after "MSIE" in userAgent else if ((verOffset=nAgt.indexOf("MSIE"))!=-1) { jQuery.browser.msie = true; jQuery.browser.name = "Microsoft Internet Explorer"; jQuery.browser.fullVersion = nAgt.substring(verOffset+5); } // In Chrome, the true version is after "Chrome" else if ((verOffset=nAgt.indexOf("Chrome"))!=-1) { jQuery.browser.webkit = true; jQuery.browser.name = "Chrome"; jQuery.browser.fullVersion = nAgt.substring(verOffset+7); } // In Safari, the true version is after "Safari" or after "Version" else if ((verOffset=nAgt.indexOf("Safari"))!=-1) { jQuery.browser.webkit = true; jQuery.browser.name = "Safari"; jQuery.browser.fullVersion = nAgt.substring(verOffset+7); if ((verOffset=nAgt.indexOf("Version"))!=-1) jQuery.browser.fullVersion = nAgt.substring(verOffset+8); } // In Firefox, the true version is after "Firefox" else if ((verOffset=nAgt.indexOf("Firefox"))!=-1) { jQuery.browser.mozilla = true; jQuery.browser.name = "Firefox"; jQuery.browser.fullVersion = nAgt.substring(verOffset+8); } // In most other browsers, "name/version" is at the end of userAgent else if ( (nameOffset=nAgt.lastIndexOf(' ')+1) < (verOffset=nAgt.lastIndexOf('/')) ) { jQuery.browser.name = nAgt.substring(nameOffset,verOffset); jQuery.browser.fullVersion = nAgt.substring(verOffset+1); if (jQuery.browser.name.toLowerCase()==jQuery.browser.name.toUpperCase()) { jQuery.browser.name = navigator.appName; } } // trim the fullVersion string at semicolon/space if present if ((ix=jQuery.browser.fullVersion.indexOf(";"))!=-1) jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix); if ((ix=jQuery.browser.fullVersion.indexOf(" "))!=-1) jQuery.browser.fullVersion=jQuery.browser.fullVersion.substring(0,ix); jQuery.browser.majorVersion = parseInt(''+jQuery.browser.fullVersion,10); if (isNaN(jQuery.browser.majorVersion)) { jQuery.browser.fullVersion = ''+parseFloat(navigator.appVersion); jQuery.browser.majorVersion = parseInt(navigator.appVersion,10); } jQuery.browser.version = jQuery.browser.majorVersion; })(jQuery);