$("#MyPopWindow").window({
title : '子页面',
width : 850,
height : 495,
href:ctx + '/jsp/child.jsp',
cache:false,
onLoad: function() {
console.log(“加载子页面时执行的”);
init();
},
onClose : function() {
$(this).dialog('destroy');
$(this).remove();
}
});
2.利用iframe避免浏览器不兼容问题,更好的渲染效果
title ="子页面";
url = ctx + '/jsp/child.jsp';
var content = '<iframe id="vpn" src="' + url + '" width=100%" height="99%" frameborder="0" scrolling="no"></iframe>';
var boarddiv = '<div id="msgwindow" title="' + title + '"></div>'//style="overflow:hidden;"可以去掉滚动条
$(document.body).append(boarddiv);
$('#msgwindow').show();
var win = $('#msgwindow').dialog({
content: content,
width: 850,
height: 495,
modal: false,
title: title,
onClose : function() {
$(this).dialog('destroy');
$(this).remove();
}
});
}
3.
**注:
- 在FireFox下id不能获取iframe对象
使用jQuery的Dialog控件时,jQuery会将创建的dialog缓存到页面上,生成一些隐藏的div,当再次创建dialog时,由于id相同总会调用缓存中的Dialog,导致无法显示想要显示的内容。查了dialog有destroy方法,依然没有作用。
destroy销毁的jquery ui给你生成dialog时候的那些jsp,不会销毁元素本身,要销毁元素本身要用remove
火狐浏览器上需刷新当前页面
//在onclose: function(){}中写上
window.location.reload();
//当你第二次弹框时可能无法弹出页面
//由于浏览器的兼容和加载机制,火狐不会自动加载,不会再重复渲染。
//从缓存中去取这个url,弹框不加载,导致弹框显示失败
1,子iframe内调用父类函数方法:
window.parent.func();
2,子Iframe中获取父界面的元素:
$("#xx", window.parent.document);
这个xx就是父界面中要获取的元素的ID。
3,jquery 调用子iframe页面中js的方法:
iframefunction()是子页面的方法
$(window.parent.document).contents().find("#iframename")[0].contentWindow.iframefunction();