window.showmodaldialogの基本的な使用について話しましょう
showmodaldialog()(すなわち4+サポート)
showmodelessdialog()(すなわち5+サポート)
window.showmodaldialog()メソッドは、HTMLコンテンツを表示するモジュラーダイアログボックスを作成するために使用されます。
window.showmodelessdialog()メソッドは、HTMLコンテンツを表示する非モーダルダイアログボックスを作成するために使用されます。
使い方:
vreturnvalue = window.showmodaldialog(surl [、varguments] [、sfeatures]))
vreturnvalue = window.showmodelessdialog(surl [、varguments] [、sfeatures])))
パラメーター説明:
surl-must-chooseパラメーター、タイプ:文字列。 URLは、ダイアログボックスに表示されるドキュメントを指定するために使用されます。
Varguments-Optionalパラメーター、タイプ:バリアント。パラメーターをダイアログボックスに渡すために使用されます。通過したパラメータータイプは、配列などを含めて制限されていません。ダイアログボックスには、Window.Dialogargumentsを介して渡されたパラメーターが取得されます。
sfeatures-optionalパラメーター、タイプ:文字列。ダイアログボックスの外観とその他の情報を説明するために使用すると、以下の1つ以上を使用して、セグメントを使用できます。
1. Dialogheight:ダイアログボックスの高さ、100px以上、IE4のDialogheightおよびDioulogWidthはEMであり、IE5はMODのダイアログボックスに便利です。
2。ダイアログウィッド:ダイアログボックス幅。
3.DialogLeft:画面の左からの距離。
4。ダイアログトップ:画面からの距離。
5.Center: {はい|。
6.ヘルプ: {はい|。
7. {はい|。デフォルト番号
8.Status: {はい|。デフォルトはyes [modeless]またはno [modal]です。
9. {はい|デフォルトはイエスです。
次の属性はHTAで使用され、一般的に一般的なWebページでは使用されません。
10。{はい|デフォルトはいいえです。
11.Edge: {Sunken | soped}:ダイアログボックスのボーダースタイルを示します。デフォルトは昇給です。
12.はい|
パラメーター送信:
1.ダイアログボックスにパラメーターを渡す場合は、Vargumentsを通過できます。タイプは制限されていませんが、最大値は4096文字です。次のようなオブジェクトを渡すこともできます。
次のようにコードコードをコピーします。
<スクリプト>
var obj = new object();
obj.name = "ttop";
window.showmodaldialog( "test.htm"、obj、 "dialogwidth = 200px; dialogheight = 100px");
</script>
test.htm
<スクリプト>
var obj = window.dialogarguments
アラート( "渡すパラメーターは" + obj.nameです)
</script>
2。ウィンドウを介してダイアログボックスを開くウィンドウに情報を返すことができます。もちろん、それはオブジェクトでもあります。例えば:
次のようにコードコードをコピーします。
<スクリプト>
str = window.showmodaldialog( "test.htm"、 "dialogwidth = 200px; dialogheight = 100px");
アラート(str);
</script>
test.htm
<スクリプト>
window.returnvalue = "/";
</script>
1. showmodaldialogとshowmodelessdialogの違いは何ですか?
showmodaldialog:開かれた後、常に入力の焦点を維持します。ダイアログボックスが閉じられない限り、ユーザーはメインウィンドウに切り替えることができません。アラートの操作効果に似ています。
showmodelessdialog:開いた後、ユーザーは入力フォーカスをランダムに切り替えることができます。メインウィンドウには影響しません(せいぜいブロックされています。
第二に、showmodaldialogとshowmodelessdialogに新しいウィンドウをポップアップするにはどうすればよいですか?
<ベースターゲット= "_ seld">をオープンWebページに追加します。この文は通常、<html>と<body>の間に配置されます。
showmodaldialogとshowmodelessdialogでコンテンツを更新する方法は?
showmodaldialogおよびshowmodelessdialogでは、F5を更新できず、メニューをポップアップできません。これはJavaScriptにのみ依存できます。
<body onkeydown = "if(event.keycode == 116){regoad.click()}">
<a id = "reload" href = "filename.htm" style = "display:none"> reload ... </a>
Filename.htmをWebページの名前に置き、F5を押して<Base Target = "_ Seld"> Windowで使用することにします。
第四に、showmodaldialog(またはshowmodelessdialog)のウィンドウをjavascriptで閉じる方法。
<入力型= "button" value = "close" onclick = "window.close()">
また、<base target = "_ seld">と協力してください。そうしないと、新しいIEウィンドウを開き、オフにします。
5。ShowModaldialogおよびShowModelessDialogデータ送信手法。
(著者の言葉:私はもともと質問と答えでそれを書きたかったのですが、これについては考えられなかったので、これをしなければなりませんでした。)
このことはもっと面倒です。
例:これで、変数var_nameを読むか設定する必要があります
一般的な送信方法:
window.showmodaldialog( "filename.htm"、var_name)
// var_name変数を転送します
showmodaldialicalog(またはshowmodelessdialog)で読んで設定するとき::
alert(window.dialogarguments)// var_name変数を読み取ります
window.dialogarguments = "oyiboy" // var_name変数を設定します
この方法は満たすことができますが、いつvar_nameを操作してから、2番目の変更var_idを同時に操作したいのですか?もう動作することはできません。これは、この伝送方法の制限です。
以下は、私がそれを使用することをお勧めする方法です。
window.showmodaldialog( "filename.htm"、window)
//動作する変数に関係なく、メインウィンドウのウィンドウオブジェクトのみが直接送信されます
showmodaldialicalog(またはshowmodelessdialog)で読んで設定するとき::
alert(window.dialogarguments.var_name)// var_name変数を読み取ります
window.dialogarguments.var_name = "oyiboy" // var_name変数を設定します
同時に、var_id変数を操作することもできます
alert(window.dialogarguments.var_id)// var_id変数を読み取ります
window.dialogarguments.var_id = "001" // var_id変数を設定します
また、フォームオブジェクトの要素など、メインウィンドウの任意のオブジェクトを操作することもできます。
window.dialogarguments.form1.index1.value = "これはindex1要素の値です"
親ページでは、 onclight = "" "varite = window.showmodalog( 'changephoto.htm'、 'dialogwidth:500px; dialogheight:300px; help:no'); if(type eof(reval)!= '未定義' ' ){form.textname.value = reval;} "style =" "cursor:hand">ここをクリックして画像を変更する
Word Window 'changephoto.htm'に設定されたフレームワークを開きます。
changephoto.htm:<入力型= onclose = "onclose();" close ">>
function onclose(){window.returnvalue = form1.save.value;
ASPファイル:parent.document.form1.save.value = "value or aliection";