Home > Web Front-end > JS Tutorial > Detailed introduction to the usage of showModalDialog in JS to close the sub-window and refresh the main window.

Detailed introduction to the usage of showModalDialog in JS to close the sub-window and refresh the main window.

黄舟
Release: 2017-03-25 14:25:16
Original
1394 people have browsed it

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>
Copy after login
Replace filename.htm with the name of the web page and put it on the web page you open. Here, press F5 to refresh. Note that this must be used in conjunction with , otherwise a new window will pop up when you press F5.

##four. , How to use javascript to close the window opened by showModalDialog (or showModelessDialog)

##

<input type="button" value="关闭" onclick="window.close()">
Copy after login
Also cooperate with , otherwise a new IE window will be opened. , and then turn it off. ##5. Data transfer skills of showModalDialog and showModelessDialog

##(Author’s words: I originally wanted to use this. It’s written in the form of an answer, but I couldn’t figure out how to ask this, so I had to do this. )

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 a

variable

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变量
Copy after login

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:

When showModalDialog (or showModelessDialog) reads and sets:

alert(window.dialogArguments.var_name)//读取var_name变量
window.dialogArguments.var_name="oyiboy"//设置var_name变量
Copy after login

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变量
Copy after login

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元素的值"
Copy after login

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(&#39;&#39;控制.htm&#39;&#39;,window,"dialogTop:1px;dialogLeft:1px") //打开控制窗口
var s2=showModelessDialog(&#39;&#39;about:blank&#39;&#39;,window,"dialogTop:200px;dialogLeft:300px")
//打开被控制窗口
Copy after login
Control part of the .htm code.

<script>
//操作位置数据,因为窗口的位置数据是"xxxpx"方式的,所以需要这样的一个特殊操作函数。
function countNumber(A_strNumber,A_strWhatdo)
{
 A_strNumber=A_strNumber.replace(&#39;&#39;px&#39;&#39;,&#39;&#39;&#39;&#39;)
 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,&#39;&#39;-&#39;&#39;)" value="上移">
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber
(window.dialogArguments.s2.dialogLeft,&#39;&#39;-&#39;&#39;)" value="左移">
<input type="button" onclick="window.dialogArguments.s2.dialogLeft=countNumber
(window.dialogArguments.s2.dialogLeft,&#39;&#39;+&#39;&#39;)" value="右移">
<input type="button" onclick="window.dialogArguments.s2.dialogTop=countNumber
(window.dialogArguments.s2.dialogTop,&#39;&#39;+&#39;&#39;)" value="下移">
Copy after login

The key parts above are:

Window naming method:

var s1=showModelessDialog(&#39;&#39;控制.htm&#39;&#39;,window,"dialogTop:1px;dialogLeft:1px")
Copy after login

Variable access Method:

window.dialogArguments.s2.dialogTop
Copy after login
This example only implements the position operation function between showModelessDialog and showModelessDialog. Through this principle, showModelessDialog controls each other's respective display pages, transfers variables and data, etc. This depends on your performance.

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>");
Copy after login

or

function doModal(url){
 win=window.showModalDialog(url,0,"dialogWidth:500px;dialogHeight:500px;status:no;help:no;");
 document.location.reload();//js页面中加入这句话就行了
}
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template