由于google已经抛弃了showModalDialog,很多老项目中还存在这个,所以导致兼容问题的出现,因此我得出了下面的处理方法
1、在第一次加载的js中添加下面内容
if(!window.showModalDialog){//没有此方法,是google浏览器
if(!window.winModalDialog){
window.winModalDialog=false;
}
window.showModalDialog=function(url,name,option){
if(window.hasOpenWindow){
window.newWindow.focus();
}
var re = new RegExp(";", "g");
var option = option.replace(re, '","'); //把option转为json字符串
var re2 = new RegExp(":", "g");
option = '{"'+option.replace(re2, '":"')+'"}';
option = JSON.parse(option);
var openOption = 'width='+parseInt(option.dialogWidth)+',height='+parseInt(option.dialogHeight)+',left='+(window.screen.width-parseInt(option.dialogWidth))/2+',top='+(window.screen.height-30-parseInt(option.dialogHeight))/2;
window.hasOpenWindow = true;
window.newWindow = window.open(url,'_blank',openOption);
}
}else{
window.winModalDialog=true;
}
2、在相应的打开页面(子页面)做回调处理
if(!window.winModalDialog){
try{
window.opener.document.location = "javascript:showModalDialogProbleClose("+data.pmMonthProblem.id.toString()+");";
}catch(e){//异常处理
}
}else{
window.returnValue=data.pmMonthProblem.id.toString();
}
window.close();
2、在父页面做回调处理
function showModalDialogClose(result){
$("#attSpan").text(result);
}