رمز البرنامج
وظيفة مفتوحة البيض (نوع) {
window.showModalDialog('../EggPlay.aspx?type='+type,'','dialogHeight: 600px; الحوار العرض: 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] [, sFeatures])
vReturnValue = window.showModelessDialog(sURL [, vArguments] [, sFeatures])
وصف المعلمة:
URL
المعلمة المطلوبة، النوع: سلسلة. يُستخدم لتحديد عنوان URL للمستند الذي سيتم عرضه في مربع الحوار.
vArguments
معلمة اختيارية، النوع: متغير. يستخدم لتمرير المعلمات إلى مربع الحوار. نوع المعلمات التي تم تمريرها غير محدود، بما في ذلك المصفوفات، وما إلى ذلك. يحصل مربع الحوار على المعلمات التي تم تمريرها عبر window.dialogArguments.
سمات
معلمة اختيارية، اكتب: سلسلة. يُستخدم لوصف مظهر مربع الحوار والمعلومات الأخرى، ويمكنك استخدام واحد أو أكثر مما يلي، مفصولة بفواصل منقوطة "؛".
يبلغ ارتفاع مربع الحوار ارتفاع مربع الحوار، وليس أقل من 100 بكسل. الوحدة الافتراضية لارتفاع الحوار وعرض الحوار في IE4 هي em، بينما في IE5 هي px للراحة، عند تحديد مربع حوار مشروط، استخدم px كوحدة.
عرض الحوار: عرض مربع الحوار.
الحوار اليسار: المسافة من الجانب الأيسر لسطح المكتب.
مربع الحوار: المسافة من سطح المكتب.
المركز: {yes |. no |. 1 |. 0}: سواء كانت النافذة في المنتصف، فإن الإعداد الافتراضي هو نعم، ولكن لا يزال من الممكن تحديد الارتفاع والعرض.
مساعدة: {نعم |. لا |. 1 |. 0}: ما إذا كان سيتم عرض زر المساعدة، فإن الإعداد الافتراضي هو نعم.
يمكن تغيير حجمه: {yes |. no |. 1 |. 0} [IE5+]: ما إذا كان يمكن تغيير حجمه. الافتراضي هو لا.
الحالة: {نعم |. لا |. 0} [IE5+]: ما إذا كان سيتم عرض شريط الحالة. الافتراضي هو نعم [مشروط] أو لا [مشروط].
التمرير: { نعم |. 1 |. تشغيل |. إيقاف }: يشير إلى ما إذا كان مربع الحوار يعرض أشرطة التمرير. الافتراضي هو نعم.
هناك أيضًا العديد من السمات المستخدمة في HTA، والتي لا يتم استخدامها بشكل عام في صفحات الويب العادية.
الحوار إخفاء: { نعم |. لا |. 0 |. تشغيل |. إيقاف }: ما إذا كان مربع الحوار مخفيًا أثناء الطباعة أو معاينة الطباعة. الافتراضي هو لا.
الحافة: {غارقة | مرفوعة}: تحدد نمط الحدود لمربع الحوار. يتم رفع الافتراضي.
غير مزين:{ نعم |. لا |. 0 |. إيقاف }: الافتراضي هو لا.
تمرير المعلمات:
لتمرير المعلمات إلى مربع الحوار، يتم تمريرها من خلال vArguments. لا يوجد حد للنوع بالنسبة لأنواع السلسلة، الحد الأقصى للطول هو 4096 حرفًا. يمكنك أيضًا تمرير كائنات، على سبيل المثال:
رمز البرنامج
test1.htm
============================================================================
<النص البرمجي>
var mxh1 = new Array("mxh"،"net_lover"، "Mencius Chapter 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
تنبيه ("المعلمات التي قمت بتمريرها هي:" + a)
</script>
test3.htm
============================================================================
<النص البرمجي>
var a = window.dialogArguments
تنبيه ("المعلمة التي قمت بتمريرها هي كائن نافذة، الاسم:" + a.name)
</script>
يمكن إرجاع المعلومات إلى النافذة التي فتحت مربع الحوار من خلال window.returnValue، وبالطبع يمكن أيضًا أن تكون كائنًا. على سبيل المثال:
رمز البرنامج
test4.htm
====================================================================
<النص البرمجي>
فار أ = window.showModalDialog("test5.htm")
تنبيه for(i=0;i<a.length;i++)(a[i])
</script>
test5.htm
====================================================================
<النص البرمجي>
وظيفة إرسال إلى ()
{
فار أ=مصفوفة جديدة("a"،"b")
window.returnValue = أ
إغلاق النافذة ()
}
</script>
<الجسم>
<النموذج>
<قيمة الإدخال = "إرجاع" نوع = زر onclick = "sendTo ()">
</النموذج>
التعليمات:
1. كيف يتم الإرسال في مربع حوار مشروط دون فتح نافذة جديدة؟
إذا كان متصفحك IE5.5+، فيمكنك استخدام iframe مع سمة اسم في مربع الحوار، ويمكنك تعيين الهدف ليكون اسم iframe عند الإرسال. بالنسبة لـ IE4+، يمكنك استخدام إطار بارتفاع 0: على سبيل المثال،
رمز البرنامج
test6.htm
====================================================================
<النص البرمجي>
window.showModalDialog("test7.htm")
</script>
test7.htm
====================================================================
إذا (window.location.search) تنبيه (window.location.search)
<صفوف مجموعة الإطارات = "0، *">
<frame src="/blog/about:blank">
<الإطار src="test8.htm">
</frameset>
test8.htm
====================================================================
<نموذج الهدف = "_self" طريقة = "الحصول على">
<اسم الإدخال = قيمة النص = "اختبار">
<نوع الإدخال=إرسال>
</النموذج>
<النص البرمجي>
إذا (window.location.search) تنبيه (window.location.search)
</script>
2. هل يمكن تمرير المعلمات مباشرة إلى مربع الحوار من خلال http://servername/virtualdirname/test.htm?name=mxh ؟
الجواب هو لا. ولكن من الممكن في الإطار.