ホームページ >ウェブフロントエンド >jsチュートリアル >showModalDialog による新しい form_javascript スキルのポップアップを回避する理由の分析

showModalDialog による新しい form_javascript スキルのポップアップを回避する理由の分析

WBOY
WBOYオリジナル
2016-05-16 18:26:03914ブラウズ

showModalDialog と showModelessDialog

1. showModalDialog と showModelessDialog の違いは何ですか?
showModalDialog: 開かれた後、入力フォーカスは常に維持されます。ダイアログ ボックスが閉じられない限り、ユーザーはメイン ウィンドウ

に切り替えることはできません。アラートの操作効果と同様。
showModelessDialog: 開かれた後、ユーザーは入力フォーカスをランダムに切り替えることができます。メイン ウィンドウには影響しません (最大でも

がブロックされ、しばらく保持されます。

2. showModalDialog と showModelessDialog のハイパーリンクが新しいウィンドウをポップアップしないようにするにはどうすればよいですか?
ブロックされた後 開いた Web ページに を追加するだけです。通常、この文は


の間に配置されます。 3. showModalDialog と showModelessDialog のコンテンツを更新するにはどうすればよいですか? ShowModelessDialog は F5 キーを押しても更新できません。メニューのポップアップ。これは

JavaScript のみに依存します。関連するコードは次のとおりです:



reload..
filename.htm を Web ページの名前に置き換え、F5 キーを押して更新します。これは


Use と一致する必要があることに注意してください。 F5 を押すと新しいウィンドウが表示されます。
4. showModalDialog (または showModelessDialog) で開いたウィンドウを閉じるには、


も使用する必要があります。そうでない場合は、新しい IE ウィンドウが開いてから閉じられます。
5. showModalDialog と showModelessDialog のデータ転送スキル (作者の言葉: 当初は一問一答形式で書きたかったのですが。 、でも聞き方が分からないのでこうするしかないです)
これは何回も変えているのですが説明できません(語学力が落ちてきています。) ) なので、例を使って説明する必要があります。
例:
次に、showModalDialog (または showModelessDialog) で変数 var_name を読み取るか、設定する必要があります。

一般的な配信方法:
window.showModalDialog("filename.htm", var_name)
//showModalDialog (または showModelessDialog) で読み取りおよび設定するときに、var_name 変数
を渡します:
alert(window.dialogArguments)// var_name 変数を読み取ります
window.dialogArguments="oyiboy" //var_name 変数を設定します
この方法は問題ありませんが、var_name の操作中に 2 番目の変数 var_id を操作したい場合はどうすればよいでしょうか?

はもうできません。これがこの配信方法の制限です。

私が推奨する配信方法は次のとおりです:
window.showModalDialog("filename.htm",window)
//操作したい変数に関係なく、window オブジェクトを渡すだけです。メインウィンドウを直接
showModalDialog (または showModelessDialog) で読み取りおよび設定する場合:
alert(window.dialogArguments.var_name)//var_name 変数を読み取ります
window.dialogArguments.var_name="oyiboy"//Set var_name 変数

同時に、var_id 変数
alert(window.dialogArguments.var_id)//var_id 変数を読み取る
window.dialogArguments.var_id="001" //var_id 変数を設定します

フォーム オブジェクト内の要素など、メイン ウィンドウ内の任意のオブジェクトを操作することもできます。
window.dialogArguments.form1.index1.value="これは、index1 要素の値を設定しています"

6. 複数の showModelessDialog の相互作用。
それについて話すのは非常に難しいので、私はただ怠惰なので、理解できない場合は直接私に書いてください(oyiboy#163.net(
#を@に変えてください))質問させてください。

次のコードの主な機能は、showModelessDialog 内で別の showModelessDialog の位置を移動することです。

メインファイルの js コードの一部。
var s1=showModelessDialog(''control.htm'',window,"dialogTop:1px;dialogLeft:1px") // コントロールを開きます

コントロール ウィンドウ
var s2=showModelessDialog(' ' about:blank'',window,"dialogTop:200px;dialogLeft:300px")

//制御されたウィンドウを開きます

.htm コードの制御部分。






変数アクセス メソッド: window.dialogArguments.s2.dialogTop

この例では、showModelessDialog と showModelessDialog の間の位置操作関数のみを実装します。この原理により、

showModelessDialog 間のそれぞれの表示ページを制御し、変数やデータを転送します。这要看各位的发挥了。

如果打开了一个模式窗口,想在打开的窗口中,关闭本窗口,重新加载父窗口,代码如下:

Response.Write("<script><br>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页面中加入这句话就行了
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。