要实现的效果:
解决方法是弹出来的dialog使用iframe方式。
//添加(弹出窗口) function AddFun(url, title) { //$('#tagDlg').dialog({ href: url, title: title }); //原来的方式 //更改后,在IE9下,初始src为空 var content = '<iframe id="tabIframe" src="" frameborder="0" style="border:0;width:100%;height:99%;"></iframe>'; $('#tagDlg').dialog({ content: content, title: title }); //传进去的src等于空 $("#tagDlgInfo").html("提示信息"); $("#tagDlgInfo").css('color', 'Black'); $("#tagDlg-buttons-add").linkbutton({ text: "添加" }) $('#tagDlg').dialog({ onOpen: function () { //onOpen会在onLoad之前执行,更改src属性 var panel = $('#tagDlg').panel('panel'); var frame = panel.find('#tabIframe'); if (frame.length > 0) { for (var i = 0; i < frame.length; i++) { frame[i].src = url; } } }, onLoad: function () { var panel = $('#tagDlg').panel('panel'); var frame = panel.find('#tabIframe'); if (frame.length > 0) { frame[0].reset(); } } }); $('#tagDlg').dialog('open'); }
点击添加按钮时需要调用iframe里面的函数,并穿进去一个对象。
var tags = $("#table_Point_datagrid").datagrid('getRows'); var panel = $('#tagDlg').panel('panel'); var frames = panel.find('#tabIframe'); if (frames.length == 0) { return; } var targetFrame = frames[0].contentWindow; //获取iframe对象 var msg = targetFrame.validPointInfo(tags);