This article mainly introduces the usage of showModalDialog in JS to close the sub-window and refresh the main window. It analyzes the common usage and related usage skills of showModalDialog in detail based on specific examples. Friends in need can refer to the following
The example in this article describes the usage of showModalDialog in JS to close the child window and refresh the main window. I share it with you for your reference. The details are as follows:
I searched online for a long time and most of them were window.opener.location.reload(), etc.
was not what I wanted. Finally, I finally found it. If you find something you want to know, take a look below
showModalDialog and showModelessDialog
##1. What is the difference between showModalDialog and showModelessDialog?
showModalDialog: After being opened, the input focus will always be maintained. The user cannot switch to the main window unless the dialog box is closed. Similar to the operation effect of alert.showModelessDialog: After being opened, the user can randomly switch input focus. It has no effect on the main window (at most it is blocked for a while.
2. How to prevent the hyperlinks in showModalDialog and showModelessDialog from popping up new windows?
Just add to the opened web page. This sentence is usually placed in <
head>
##3. How to refresh the content in showModalDialog and showModelessDialog? ##You cannot press F5 to refresh in showModalDialog and showModelessDialog? , and the menu cannot pop up. This can only rely on javascript
. The following is the relevant code:<body onkeydown="if (event.keyCode==116){reload.click()}"> <a id="reload" href="filename.htm" rel="external nofollow" style="display:none">reload...</a>
##four. , How to use javascript to close the window opened by showModalDialog (or showModelessDialog)
##
<input type="button" value="关闭" onclick="window.close()">
This thing is more troublesome. I have changed it several times and I can’t explain it clearly (my language skills are getting worse and worse. ), I have to use an example to illustrate Example:
Now we need to read or set avariable
var_name# in a showModalDialog (or showModelessDialog) ##General transfer method:
window.showModalDialog("filename.htm",var_name) //传递var_name变量 在showModalDialog(或showModelessDialog)读取和设置时: alert(window.dialogArguments)//读取var_name变量 window.dialogArguments="oyiboy"//设置var_name变量
This method is satisfactory, but what if you want to operate the second variable var_id at the same time? This is it. Limitations of this delivery method:
The following is the delivery method I recommend: window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象
alert(window.dialogArguments.var_name)//读取var_name变量 window.dialogArguments.var_name="oyiboy"//设置var_name变量
At the same time I can also operate the var_id variable
alert(window.dialogArguments.var_id)//读取var_id变量 window.dialogArguments.var_id="001"//设置var_id变量
and I can also operate on any object in the main window, such as the elements in the
form object.
window.dialogArguments.form1.index1.value="这是在设置index1元素的值"
6. Interoperation of multiple showModelessDialog.
Because it’s very difficult to just talk about it, I’ll be lazy and just use code to explain it.
The main function of the following code is to move the position of another showModelessDialog in a showModelessDialog. Part of the js code of the main file. var s1=showModelessDialog(''控制.htm'',window,"dialogTop:1px;dialogLeft:1px") //打开控制窗口
var s2=showModelessDialog(''about:blank'',window,"dialogTop:200px;dialogLeft:300px")
//打开被控制窗口
<script> //操作位置数据,因为窗口的位置数据是"xxxpx"方式的,所以需要这样的一个特殊操作函数。 function countNumber(A_strNumber,A_strWhatdo) { A_strNumber=A_strNumber.replace(''px'','''') A_strNumber-=0 switch(A_strWhatdo) { case "-":A_strNumber-=10;break; case "+":A_strNumber+=10;break; } return A_strNumber + "px" } </script> <input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber (window.dialogArguments.s2.dialogTop,''-'')" value="上移"> <input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber (window.dialogArguments.s2.dialogLeft,''-'')" value="左移"> <input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber (window.dialogArguments.s2.dialogLeft,''+'')" value="右移"> <input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber (window.dialogArguments.s2.dialogTop,''+'')" value="下移">
The key parts above are:
Window naming method:
var s1=showModelessDialog(''控制.htm'',window,"dialogTop:1px;dialogLeft:1px")
Variable access Method: window.dialogArguments.s2.dialogTop
If you open a modal window and want to close this window and reload the parent window in the open window, the code is as follows: The code is as follows:
Response.Write("<script language=javascript>parent.window.opener=null;parent.window.dialogArguments.location.reload();window.close();</script>");
function doModal(url){ win=window.showModalDialog(url,0,"dialogWidth:500px;dialogHeight:500px;status:no;help:no;"); document.location.reload();//js页面中加入这句话就行了 }
The above is the detailed content of Detailed introduction to the usage of showModalDialog in JS to close the sub-window and refresh the main window.. For more information, please follow other related articles on the PHP Chinese website!