要实现的效果:

解决方法是弹出来的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);

 

 

 

posted on 2013-01-31 09:46  赵保龙  阅读(961)  评论(0编辑  收藏  举报