windows.showmodaldialog 是什么请求
1.showModalDialog打开的窗口想访问父窗口的数据的话代码window.showModalDialog("filename.htm",window)在子窗体中用window.dialogArguments得到就是你的父窗体对象,这样就能访问到父窗体数据了.
2.在子窗体应用的文件的head区之间添加代码<ba target="_lf"
这样在打开的子窗体中的链接仍然会在子窗体刷新,而不会跑到新窗口。。
3.配合上面这句以后,window.clo()就可以关闭打开的Dialog了。
用window.showModalDialog打开窗体如何关闭
1.showModalDialog打开的窗口想访问父窗口的数据的话代码window.showModalDialog("filename.htm",window)在子窗体中用window.dialogArguments得到就是你的父窗体对象,这样就能访问到父窗体数据了.2.在子窗体应用的文件的head区之间添加代码<ba target="_lf"这样在打开的子窗体中的链接仍然会在子窗体刷新,而不会跑到新窗口。。3.配合上面这句以后,window.clo()就可以关闭打开的Dialog了。
如何获取window.showmodaldialog的参数
获取window.showmodaldialog的参数:
window.showModalDialog有一个属性是url,你可以把这两个参数通过url的get方法 var url = "ndreceive-oil!getDetailjsp.do?id="+id;传到后台action中,然后在action中保存这两个参数用ActionContext.getContext().put("id", id);保存到actioncontext中,然后在子窗口用 <input name="id" type="hidden" id="id" value="${requestScope.id}"/>。然后在jsp用 document.getElementById("id").value;就可以得到这个参数了
关于初用window.open和window.showModalDialog使用的区别
弹出窗口两种方式:
1.window.showModalDialog:
var feature = "dialogWidth:615px;dialogHeight:505px;status:no;help:no;scroll:no;resizable:no;center:yes";
window.showModalDialog(url, Object(传给弹出窗口的参数,可以是任何类型),feature)
决定窗口的外观是第三个参数feature,其中center属性指定为"yes",弹出窗口居中;
如果想手动指定弹出窗口的具体位置,去掉center属性,
用dialogTop(弹出窗口上边界居屏幕上的距离)
dialogLeft(弹出窗口左边界居屏幕左的距离)属性
如:(距离是px像素),这里手动指定弹出窗口位置居中
var iTop = (window.screen.availHeight-550)/2; //获得窗口的垂直位置,550为弹出窗口的height;
var iLeft = (window.screen.availWidth-640)/2; //获得窗口的水平位置,640为弹出窗口的width;
var feature = "dialogWidth:640px;dialogHeight:550px;status:no;help:no;scroll:no;resizable:no;dialogTop:'+iTop+';dialogLeft:'+iLeft+';";
2.window.open:
var feature = "width=615,height=505,menubar=no,toolbar=no,location=no,scrollbars=no,status=no,modal=yes"
window.open(url, "name(只能为字符串,不能传window)", feature)
手动指定弹出窗口位置,属性top:(弹出窗口上边界居屏幕上的距离)
属性left:(弹出窗口左边界居屏幕左的距离)
下面指定弹出窗口位置居中(这种方式没有center属性):
var iTop = (window.screen.availHeight-550)/2; //获得窗口的垂直位置,550为弹出窗口的height;
var iLeft = (window.screen.availWidth-640)/2; //获得窗口的水平位置,640为弹出窗口的width;
var feature = "width=615,height=505,top="+iTop+",left="+iLeft+",menubar=no,toolbar=no,location=no,scrollbars=no,status=no,modal=yes";
子窗口调用父窗口的东东(控件或者方法):
1. window.open打开的子窗口有window.opener属性
子窗口通过window.opener.xxxx获得父窗口的东东。
如:window.opener.document.getElementById("urName");得到父页面的控件。
window.opener.fresh();调用父页面的js方法。
2. window.showModalDialog:不支持window.opener,
子窗口通过window.dialogArguments.xxxx获得父窗口的东东。
父窗口通过showModalDialog(url,para,feature)第二个参数para传参数给子窗口,
子窗口通过window.dialogArguments获得父窗口穿过来的东西。
如:这里传父页面的window过去
父页面:showModalDialog(url,window,feature)
子页面:var name = window.dialogArguments.document.getElementById("urName").value;得到父页面的控件。
var name = window.dialogArguments.fresh();调用父页面的方法。
这里的window.dialogArguments里的window代表父页面的window,它是通过showModalDialog方法的第二个参数window传过来的,
当然也可以传数组或其它变量。
window.showModalDialog()模态窗口的最小化、最大化问题
window.showModalDialog()模态窗口的最小化、最大化问题
增加minimize:yes;maximize:yes;即可,如下
function openModal(){
window.showModalDialog("https://www.jianshu.com/",window,"dialogWidth:800px;dialogHeight:600px;edge:raid;resizable:yes;scroll:no;status:no;center:yes;help:no; minimize:yes;maximize:yes; ");
}
jsp中window.showModalDialog如何隐藏地址栏(jsp遵循了W3C)
showModalDialog弹出的dialog根本就不会有地址栏。
window其他参数含义及设置如下:
window.showModalDialog(sURL [, vArguments] [,sFeatures])
sFeatures的参数如下
1. dialogHeight: 对话框高度,不小于100px
2. dialogWidth: 对话框宽度。
3. dialogLeft: 离屏幕左的距离。
4. dialogTop: 离屏幕上的距离。
5. center: { yes | no | 1 | 0 } : 是否居中,默认yes,但仍可以指定高度和宽度。
6. help: {yes | no | 1 | 0 }: 是否显示帮助按钮,默认yes。
7. resizable: {yes | no | 1 | 0 } [IE5+]: 是否可被改变大小。默认no。
8. status: {yes | no | 1 | 0 } [IE5+]: 是否显示状态栏。默认为yes[ Modeless]或no[Modal]。
9. scroll: { yes | no | 1 | 0 | on | off }:是否显示滚动条。默认为yes。