ホームページ  >  記事  >  ウェブフロントエンド  >  サブウィンドウを閉じてメインウィンドウを更新するための、JS での showModalDialog の使用法の詳細な紹介。

サブウィンドウを閉じてメインウィンドウを更新するための、JS での showModalDialog の使用法の詳細な紹介。

黄舟
黄舟オリジナル
2017-03-25 14:25:161303ブラウズ

この記事では、主に

JS での showModalDialog の使用法を紹介し、showModalDialog の一般的な使用法と関連する使用法を具体的な例に基づいて詳しく分析します。

この記事の例では、JS について説明します。 showModalDialog で、サブウィンドウを閉じ、メイン ウィンドウの使用状況を更新します。ご参考までに、詳細は次のとおりです。

長い間オンラインで検索しましたが、ほとんどが window.opener.location.reload() などでした。

それは私が望んでいたものではありませんでした。最後に、知りたかったものを見つけました。見てみましょう

showModalDialog と showModelessDialog

1. showModalDialog と showModelessDialog の違いは何ですか?

showModalDialog: 開かれた後、入力フォーカスは常に維持されます。ダイアログ ボックスを閉じない限り、ユーザーはメイン ウィンドウに切り替えることはできません。アラートの操作効果と同様。

showModelessDialog: 開かれた後、ユーザーは入力フォーカスをランダムに切り替えることができます。メイン ウィンドウには影響しません (せいぜいしばらくブロックされます。

2. showModalDialog と showModelessDialog 間のハイパーリンクが新しいウィンドウをポップアップ表示しないようにするにはどうすればよいですか?

開いている Web に

を追加するだけです。この文は通常 ec4de6eb7716c98d6eada95f1b4658a3head> の間に配置されます。 3. showModalDialog と showModelessDialog でコンテンツを更新する方法

と、メニューはポップアップできません。これは javascript にのみ依存します。以下は関連するコードです:

<body onkeydown="if (event.keyCode==116){reload.click()}">
<a id="reload" href="filename.htm" rel="external nofollow" style="display:none">reload...</a>

filename.htm を Web ページの名前に置き換え、F5 を押して更新します。これは 9f2112260df6afb8cdac6650013c78f7 と組み合わせて使用​​する必要があることに注意してください。そうしないと、F5 を押すと新しいウィンドウがポップアップします。

4. showModalDialog によって開かれたウィンドウを閉じるために JavaScript を使用する方法 (または showModelessDialog)

。9f2112260df6afb8cdac6650013c78f7 とも連携します。そうでない場合は、新しい IE ウィンドウが開いてから閉じられます

5. ShowModalDialog および showModelessDialog データ転送スキル

(作者注:本来は一問一答形式で書きたかったのですが、質問の仕方がわからなかったのでこのようにしました。)

こっちの方が面倒です。何度か変更しましたが、明確に説明できません (中国語) レベルがどんどん悪くなっている) ので、例を使用して説明する必要があります 例:

Now you need to read or set a

showModalDialog (または showModelessDialog) の変数

var_name

一般的な配信方法:

<input type="button" value="关闭" onclick="window.close()">

この方法は十分ですが、2 番目の変数 var_id を同時に操作したい場合はどうすればよいでしょうか。

私が推奨する配信方法は以下の通りです:

window.showModalDialog("filename.htm",var_name)
//传递var_name变量
在showModalDialog(或showModelessDialog)读取和设置时:
alert(window.dialogArguments)//读取var_name变量
window.dialogArguments="oyiboy"//设置var_name变量

showModalDialog(またはshowModelessDialog)を読み込んで設定する場合:

window.showModalDialog("filename.htm",window)
//不管要操作什么变量,只直传递主窗口的window对象

同時にvar_id変数を操作することもできます

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

form オブジェクト

要素など、メイン ウィンドウ内の任意のオブジェクトに対して。次のコードの主な機能は、showModelessDialog 内の別の showModelessDialog の位置を移動することです。

メインファイルのjsコードの一部。

alert(window.dialogArguments.var_id)//读取var_id变量
window.dialogArguments.var_id="001"//设置var_id变量

.htm コードの制御部分。

window.dialogArguments.form1.index1.value="这是在设置index1元素的值"
上記の重要な部分は次のとおりです:

ウィンドウ命名メソッド:

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")
//打开被控制窗口

変数アクセスメソッド:

<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="下移">

この例は、showModelessDialog と showModelessDialog の間の実用的な位置操作関数にすぎません。この原理により、showModelessDialog 間でそれぞれの表示ページを相互に制御し、変数やデータなどを転送します。これはあなたのパフォーマンス次第です。

モーダルウィンドウを開いてこのウィンドウを閉じ、開いているウィンドウで親ウィンドウを再読み込みする場合、コードは次のとおりです:

コードは次のとおりです:

var s1=showModelessDialog(&#39;&#39;控制.htm&#39;&#39;,window,"dialogTop:1px;dialogLeft:1px")
または
window.dialogArguments.s2.dialogTop

以上がサブウィンドウを閉じてメインウィンドウを更新するための、JS での showModalDialog の使用法の詳細な紹介。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。