ajax回调函数中弹出模态框的一个问题

andensy 2010-03-18 01:03:41
在一个Ajax的回调函数中,调用一个需要弹出模态对话框的函数,结果IE报对象错误。代码如下:

function saveOperate(unid,id,fornname,sAction)
{
var path = GetCurrentdbUrl();
var btid =id;
path = path+"/agtOperateSave?OpenAgent&btid="+btid+"&fornname="+fornname+"&unid="+unid;
$.ajax({
url: path,
type: 'get',
dataType: 'text',
async: true,
error:function(){
alert('error');
},
success:function(text){
if(text.indexOf("OK")!=-1){
eval(sAction)
}else{
alert(text);

}
}
});
}
//SAction如下:
function openModelDialog(url,x,y,title){
/* url: 打开的url
x: 横向宽度
y: 纵向长度
sAction:返回后执行的函数
*/

var strUrl = GetCurrentdbUrl() + "/fomModelDialog?OpenForm&Title="+escape(title)+"&Action=&Src=" +url;
if(x < screen.width){
width = x;
}else{
width = screen.width;
}
if(y < screen.height){
height = y;
}else{
height = screen.height;
}
var vRtn = showModalDialog(strUrl, window, 'help:no; status:no; scroll:no; dialogWidth:'+width+'px; dialogHeight:'+height+'px');
if (vRtn){
if(sAction != ""){eval(sAction(vRtn));}
}
}
问题:
1、提示出错就在openModelDialog()函数调用showModalDialog这一行,提示对象不支持此属性和方法。
2、该代码在我个人电脑上调试可以正常运行,在执行完后台成功后,成功打开一个模态窗口。
3、在客户机和公司其他同事电脑上均报错。
运行环境为:IE8

疑问:
1、是不是jQuery Ajax回调函数对内容有所限制?
2、是IE8安全级别提高后,不允许回调函数中打开模态对话框?

最后换了种解决方式:
1、修改saveOperate函数,在返回OK后,设置修改全局变量checkYeWuflag=true
2、在调用saveOperate函数后,对全局变量判断true是执行openModelDialog()函数

关键代码如下:
var checkYeWuflag=false; //查看业务信息参数
function saveOperate(unid,id,fornname)
{
var path = GetCurrentdbUrl();
var btid =id;
path = path+"/agtOperateSave?OpenAgent&btid="+btid+"&fornname="+fornname+"&unid="+unid;
$.ajax({
url: path,
type: 'get',
dataType: 'text',
async: false,
error:function(){
alert('error');
},
success:function(text){
if(text.indexOf("OK")!=-1){
checkYeWuflag=true;
}else{
alert(text);

}
}
});
}
if(checkYeWuflag) openModelDialog();


求教:问题虽然换种方式解决了,但是在回调函数中调用模态窗口的问题依旧是个谜,望高手指教。
...全文
479 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
andensy 2010-03-18
  • 打赏
  • 举报
回复
怎么没人理睬啊!

52,787

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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