プログラムコード
関数 openEgg(type){
window.showModalDialog('../EggPlay.aspx?type='+type,'','dialogHeight: 600px; DialogWidth: 800px; エッジ: 高くなりました; センター: はい; ヘルプ: いいえ; サイズ変更可能: いいえ; ステータス: いいえ;スクロール:いいえ;');
}
Javascript には、window.alert()、window.confirm()、window.prompt() など、ダイアログ ボックスを生成するための組み込みメソッドが多数あります。 ただし、IE にはダイアログ ボックスをサポートするためのメソッドがさらに用意されています。例:
showModalDialog() (IE 4 以降でサポート)
showModelessDialog() (IE 5 以降でサポート)
window.showModalDialog() メソッドは、HTML コンテンツを表示するモーダル ダイアログ ボックスを作成するために使用されます。これはダイアログ ボックスであるため、通常 window.open() で開かれるウィンドウのプロパティがすべて含まれているわけではありません。
window.showModelessDialog() メソッドは、HTML コンテンツを表示するモードレス ダイアログ ボックスを作成するために使用されます。
showModelessDialog() を使用してウィンドウを開く場合、ウィンドウを閉じるために window.close() を使用する必要はありません。非モーダル モード [IE5] で開いている場合でも、ダイアログ ボックスを開くウィンドウは他の処理を実行できます。つまり、ダイアログ ボックスは常に開いているとは限りません。これは最上位のフォーカスであり、ダイアログ ボックスを開くウィンドウの URL が変更されると自動的に閉じます。モーダル [IE4] ダイアログ ボックスには常にフォーカスがあります (閉じるまでフォーカスは削除できません)。モーダル ダイアログ ボックスは、それを開いたウィンドウにリンクされているため、別のウィンドウを開いたときでも、そのリンク関係は保持され、アクティブなウィンドウの下に隠されます。
使用方法:
vReturnValue = window.showModalDialog(sURL [, vArguments] [, sFeature])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeature])
パラメータの説明:
URL
必須パラメータ、タイプ: 文字列。ダイアログボックスに表示するドキュメントのURLを指定するために使用します。
v引数
オプションのパラメータ、タイプ: バリアント。パラメータをダイアログ ボックスに渡すために使用されます。渡されるパラメータのタイプは、配列などを含めて制限されません。ダイアログ ボックスは、window.dialogArguments を通じて渡されたパラメータを取得します。
特徴
オプションのパラメータ、タイプ: 文字列。ダイアログ ボックスの外観やその他の情報を記述するために使用され、次の 1 つ以上をセミコロン「;」で区切って使用できます。
DialogHeight はダイアログ ボックスの高さであり、100 ピクセル以上です。IE4 では、dialogHeight と DialogWidth のデフォルトの単位は em ですが、IE5 では、モーダル ダイアログ ボックスを定義するときは px を単位として使用します。
DialogWidth: ダイアログ ボックスの幅。
DialogLeft: デスクトップの左側からの距離。
DialogTop: デスクトップからの距離。
center: {yes | no | 0}: ウィンドウが中央に配置されるかどうか、デフォルトは yes ですが、高さと幅は指定できます。
help: {yes | no | 0}: ヘルプ ボタンを表示するかどうか。デフォルトは [はい] です。
resizable: {はい | いいえ | 0} [IE5+]: サイズを変更できるかどうか。デフォルトは「いいえ」です。
status: {はい | いいえ | 0} [IE5+]: ステータス バーを表示するかどうか。デフォルトは、yes[Modal] または no[Modal] です。
スクロール:{ はい | いいえ | 0 | オン オフ }: ダイアログ ボックスにスクロール バーを表示するかどうかを示します。デフォルトは「はい」です。
HTA では、通常の Web ページでは通常使用されない属性もいくつか使用されます。
DialogHide:{ はい | いいえ | 0 | オン オフ }: 印刷中または印刷プレビュー中にダイアログ ボックスを非表示にするかどうか。デフォルトは「いいえ」です。
edge:{ 沈んだ | 隆起 }: ダイアログ ボックスの境界線のスタイルを指定します。デフォルトは引き上げられています。
装飾なし:{ はい | いいえ | 0 | デフォルトはいいえです。
パラメータを渡します。
パラメータをダイアログ ボックスに渡すには、vArguments を介してパラメータを渡します。文字列型の場合、最大長は 4096 文字です。オブジェクトを渡すこともできます。たとえば、
プログラム コード
test1.htm
====================
<スクリプト>
var mxh1 = new Array("mxh","net_lover","孟子第 E 章")
var mxh2 = window.open("about:blank","window_mxh")
// 配列をダイアログボックスに渡す
window.showModalDialog("test2.htm",mxh1)
// ウィンドウオブジェクトをダイアログボックスに渡します
window.showModalDialog("test3.htm",mxh2)
</script>
test2.htm
====================
<スクリプト>
var a = window.dialogArguments
alert("渡したパラメータは次のとおりです: " + a)
</script>
test3.htm
====================
<スクリプト>
var a = window.dialogArguments
alert("渡したパラメータはウィンドウ オブジェクトです。名前: " + a.name)
</script>
情報は window.returnValue を通じてダイアログ ボックスを開いたウィンドウに返すことができ、もちろんオブジェクトにすることもできます。例えば:
プログラムコード
test4.htm
===================
<スクリプト>
var a = window.showModalDialog("test5.htm")
for(i=0;i<a.length;i++) アラート(a[i])
</script>
test5.htm
===================
<スクリプト>
関数 sendTo()
{
var a=新しい配列("a","b")
window.returnValue = a
window.close()
}
</script>
<本文>
<フォーム>
<input value="Return" type=button onclick="sendTo()">
</form>
よくある質問:
1. 新しいウィンドウを開かずにモーダル ダイアログ ボックスで送信するにはどうすればよいですか?
ブラウザが IE5.5 以降の場合、ダイアログ ボックスで name 属性を持つ iframe を使用でき、送信時にターゲットを iframe の名前に設定できます。 IE4以降では、高さ0のフレームを使用できます:
プログラムコードの
例
test6.htm
===================
<スクリプト>
window.showModalDialog("test7.htm")
</script>
test7.htm
===================
if(ウィンドウ.場所.検索) アラート(ウィンドウ.場所.検索)
<frameset rows="0,*">
<frame src="/blog/about:blank">
<frame src="test8.htm">
</frameset>
test8.htm
===================
<form target="_self" method="get">
<input name=txt value="テスト">
<入力タイプ=送信>
</form>
<スクリプト>
if(ウィンドウ.場所.検索) アラート(ウィンドウ.場所.検索)
</script>
2. http://servername/virtualdirname/test.htm?name=mxhを通じてパラメータをダイアログ ボックスに直接渡すことができますか?
答えはノーです。しかし、フレーム内では可能です。