在IE11 下面 js window.showModalDialog返回值为undefined

沉默Man 2014-12-11 02:04:12
各位大神们,请问一下,为何IE11下面 window.showModalDialog返回值为undefined。IE6到IE9都没有发现这样的情况,如何解决!
...全文
4169 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
沉默Man 2014-12-29
  • 打赏
  • 举报
回复
不好意思,现在才登录回复,都是补丁包 KB3008923引起的。删除掉都可以了
huangfuxiang1 2014-12-23
  • 打赏
  • 举报
回复
这兼容IE,360,火狐,google等游览器哦 弹出页面是这样写: function selectClassify(id) { var iTop = (window.screen.availHeight-30-570)/2; //获得窗口的垂直位置; var iLeft = (window.screen.availWidth-10-700)/2; //获得窗口的水平位置; try{//IE var returnValue = window.showModalDialog(window.ctx + "/enterpriseClassify/getAll?id="+id,window,"status:no;scroll:yes;center:yes;dialogHeight:570px;dialogWidth:700px;help:no"); if(returnValue != null ){ setValue(returnValue.name); } }catch(e){ //非IE window.open(window.ctx + "/enterpriseClassify/getAll?id="+id, 'newwindow','height=570,width=700,top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no'); } }; //setValue是自己定义的赋值方法哦! function setValue(name){ $("#classifyName").val(name); }; 处理结果的页面我是这样写: function getReturnValue(name){ try{ window.opener.setValue(name) ; }catch( e ){//IE window.returnValue = { name: name } ; } window.close() ; }
huangfuxiang1 2014-12-23
  • 打赏
  • 举报
回复
这兼容IE,360,火狐,google等游览器哦
弹出页面是这样写:
function selectClassify(id) {
var iTop = (window.screen.availHeight-30-570)/2; //获得窗口的垂直位置;
var iLeft = (window.screen.availWidth-10-700)/2; //获得窗口的水平位置;
try{//IE
var returnValue = window.showModalDialog(window.ctx + "/enterpriseClassify/getAll?id="+id,window,"status:no;scroll:yes;center:yes;dialogHeight:570px;dialogWidth:700px;help:no");
if(returnValue != null ){
setValue(returnValue.name);
}
}catch(e){ //非IE
window.open(window.ctx + "/enterpriseClassify/getAll?id="+id, 'newwindow','height=570,width=700,top='+iTop+',left='+iLeft+',toolbar=no,menubar=no,scrollbars=no, resizable=no,location=no, status=no');
}
};
//setValue是自己定义的赋值方法哦!
function setValue(name){
$("#classifyName").val(name);
};

处理结果的页面我是这样写:
function getReturnValue(name){
try{
window.opener.setHouseValue(name) ;
}catch( e ){//IE
window.returnValue = {
name: name
} ;
}
window.close() ;
}

huangfuxiang1 2014-12-23
  • 打赏
  • 举报
回复
我也遇到这问题了,,,但我是通过showModalDialog与open 的异常处理解决的
qizhanfeng 2014-12-18
  • 打赏
  • 举报
回复
幸福,thanks
凝月冰影 2014-12-18
  • 打赏
  • 举报
回复
通过安装微软12月17日发布的更新补丁kb3025390,已经顺利解决kb3008923这一更新包致使ie11中 window.showModalDialog返回值为undefined的问题,楼主不妨试一试。
凝月冰影 2014-12-15
  • 打赏
  • 举报
回复
卸载微软12月10号发布的更新,kb3008923这一更新包,然后重启电脑吧。
奋斗中的小手 2014-12-15
  • 打赏
  • 举报
回复
参考http://hi.baidu.com/282919088/item/21c5728e8570355c27ebd906
shanshao 2014-12-12
  • 打赏
  • 举报
回复
楼主可有解决方案了 ?我们软件也遇到这个问题了
qq_24442099 2014-12-12
  • 打赏
  • 举报
回复
我也遇到这种问题 还有没更多的解决方案
qizhanfeng 2014-12-12
  • 打赏
  • 举报
回复
为什么uc浏览器的兼容模式也可以呢?webbrowser就不行,是不是有什么设置
qizhanfeng 2014-12-12
  • 打赏
  • 举报
回复
不是9楼的答案,返回值的变量没有用 returnValue
qizhanfeng 2014-12-12
  • 打赏
  • 举报
回复
这个问题,是这几天,win8.1升级后才出现的,可能ie内核有所更新
手抓宝 2014-12-12
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/390348798 看看是不是这个原因
qizhanfeng 2014-12-12
  • 打赏
  • 举报
回复
貌似不行哦,不知大神是否试过
  • 打赏
  • 举报
回复
在网页的head中加上 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8" > 或者 <meta http-equiv="X-UA-Compatible" content="IE=8" >
qizhanfeng 2014-12-12
  • 打赏
  • 举报
回复
急需此问题的答案,准确的说ie11设置兼容性后就可以了,但是 webbrowser 不行,急求答案
michaelsheyong 2014-12-11
  • 打赏
  • 举报
回复
子窗口:window.opener.returnValue = "opener returnValue"; 主窗口:returnValue = window.returnValue; 试试这个,印象中可以的!不过需要根据浏览器做接判断。
小龙在线 2014-12-11
  • 打赏
  • 举报
回复
今天也遇到了IE11的问题, 返回值倒是有,但是赋值给父页面之后,父页面会自动刷新下,然后又没了 IE6、IE7、IE9下测试都是没问题的
csdn_aspnet 2014-12-11
  • 打赏
  • 举报
回复
<!DOCTYPE html>或者使用兼容模式试试

111,088

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧