artDialog是一个比较靓丽好用的插件 现在需要用art.dialog.open 打开一个网页(其实是一个选择人员页面),用户选择了人员后,点击art界面下方的按钮提交,获取选择的人员信息(需要通过JS获取得到)
遇到的问题就是该页面其实是一个frameset里面frame的内嵌页面,artdialog文档没有这块的说明。经过研究,红色关键代码:
art.dialog.open('../CommDialog/SelectDialog.aspx?DialogType=User',
{
850,
height: 550,
title: '请选择一个人员,选择完毕后点击最下方的[提交选择]按钮',
lock: true,
okVal:'提交选择',
ok: function () {
var iframe = this.iframe.contentWindow;
if (!iframe.document.body) {
alert('人员选择页面还未加载完毕')
return false;
};
var subFrame = iframe.frames["myframe"]; //iframe是父页面弹出层的iframe,然后打开的页面是一个frameset 通过frames属性找到对应的frame
var doc = subFrame.document || subFrame.contentDocument || subFrame.contentWindow.document; //兼容IE和CHROME
var gvObj = doc.getElementById("gvUserInfo"); //通过doc的方法访问到元素了
}
return true;
}
}, false);