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:" u786eu5b9a ",cancelButton:" u53d6u6d88 ",dialogClass:null,alert:function(b,c,d){if(c==null){c="u63d0u793a"}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="u8bf7u786eu8ba4"}
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="u8bf7u586bu5199"}
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="u63d0u793a"}
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(/
/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,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(/
/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({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","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);