1. ما هو modaldialog؟
Showmodaldialog هي طريقة لكائن JSWindow.
الفرق هو: بعد فتح showmodaldialog ، لا يمكن للنافذة الأصل الحصول على التركيز (أي ، لا يمكن تشغيلها).
يمكنك ضبط قيمة Window.ReturnValue في الريف الفرعي ، بحيث يمكن للنافذة الأصل الحصول على هذا العائد.
2. مثال واحد
1) main.html في النافذة الرئيسية ،
2) افتح sub.html sub -window في النافذة الرئيسية عبر showmodaldialog
3) ضبط قيمة الإرجاع في الريف الفرعي والعودة إلى النافذة الرئيسية للاستخدام
main.html
نسخ رمز رمز على النحو التالي:
<html>
<head>
<medaname = "generator" content = "oscar999">
</head>
<script>
FunctionShowModal ()
{{
varret = window.showmodaldialog ("sub.html؟ temp ="+math.random ()) ؛
تنبيه ("subreturnvalueis"+ret) ؛
}
</script>
<body>
<inputId = button1type = buttonvalue = "opensub" name = button1onclick = "showmodal () ؛" >>
</body>
</html>
sub.html
نسخ رمز رمز على النحو التالي:
<html>
<head>
<medaname = "generator" content = "oscar999">
</head>
<script>
FunctionReturnMain ()
{{
Window.RETURNVALUE = "returnfromsub" ؛
window.close () ؛
}
</script>
<body>
<inputId = button1type = buttonvalue = "returnandClose" name = button1onclick = "returnmain ()">
</body>
</html>
شرح خاص: عندما تكون طريقة showmodaldialog في main.html ، الغرض من استخدام Math.Random () هو تجنب ذاكرة التخزين المؤقت.
3.showmodaldialog بالتفصيل
vreturnvalue = window.showmodaldialog (surl [، varguments] [، sfeatures])))
surl
يجب -معلمات choose ، اكتب: سلسلة. عنوان URL المستخدم لتحديد المستند المراد عرضه في مربع الحوار.
varguments
معلمات اختيارية ، اكتب: متغير. تستخدم لتمرير المعلمات إلى مربع الحوار. نوع المعلمة الذي تم تمريره بواسطة غير محدود ، بما في ذلك الصفيف ، إلخ. يحصل مربع الحوار على معلمات تم تمريرها من خلال Window.Dialogarguments.
sfeatures
معلمات اختيارية ، اكتب: سلسلة. تستخدم لوصف المظهر والمعلومات الأخرى لمربع الحوار ، يمكنك استخدام واحد أو أكثر ، واستخدام الجزء "؛"
ارتفاع مربع الحوار ، لا يقل عن 100px ، حوار الحوار ومربع الحوار في IE4 ، و IE5 هو PX.
Dialogwidth: عرض مربع الحوار.
Dialogleft: المسافة من يسار سطح المكتب.
الحوار: المسافة من سطح المكتب.
المركز: نعم |
مساعدة: نعم |
قابلة للإصلاح: {نعم | الافتراضي لا.
الحالة: نعم | الافتراضي هو نعم [بلا تعديل] أو لا [وسيط].
التمرير: {نعم الافتراضي هو نعم.
هناك العديد من السمات المستخدمة في HTA ، والتي لا تستخدم عمومًا في صفحات الويب العامة.
الحوار: {نعم | الافتراضي هو لا.
الحافة: {غارق |. الافتراضي هو رفع.
غير مقلوب: {نعم |
4. توافق المتصفح
ولكن ليس كل المتصفحات متوافقة مع هذا الاستخدام.
إذا قمت بتشغيل المثال أعلاه في Chrome ، يمكن للنافذة الأصل الحصول على التركيز في الإرادة.
فيما يلي دعم المتصفحات الرئيسية على هذه الطريقة.
متصفح | سواء لدعم | ولاية |
IE9 | ○ | |
Firefox13.0 | ○ | |
Safari5.1 | ○ | |
Chrome19.0 | × | إنه ليس مربع حوار مشروط ، ولكن Open يحتوي على نافذة جديدة |
Opera12.0 | × | حدث كل شيء ، ولا حتى نافذة |
إذا كان هناك معلمة يتم تقديمها في varguments إلى النافذة:
نسخ رمز رمز على النحو التالي:
var return = window.showmodaldialog ("sub.html؟ temp ="+math.random () ، window) ؛
في الريف الفرعي ، القيمة التالية هي:
متصفح | مربع الحوار الوسيط | Window.Opner | Window.Dialogarguments | ReturnValue |
IE9 | ○ | غير محدد | [نافذة الكائن] | ○ |
Firefox13.0 | ○ | [ObjectWindow] | [ObjectWindow] | ○ |
Safari5.1 | ○ | [ObjectWindow] | [ObjectWindow] | ○ |
Chrome19.0 | × | [ObjectWindow] | غير محدد | × |
لاحظ أنه تحت متصفح Firefox ، إذا تم تحديث الرياح الفرعية ، فستظل Window. في النتائج المذكورة أعلاه ، يمكننا أن نرى أن قيمة إرجاع قيمة الإرجاع هي أن متصفح الكروم يعود فقط غير محدد ، ولا توجد مشاكل مع المتصفحات الأخرى.
5. كيفية حل توافق الكروم.
الاتجاه هو: set window.opner.returnvalue = "" "
main.html
نسخ رمز رمز على النحو التالي:
<html>
<head>
<meta name = "general" content = "Oscar999">
</head>
<script>
وظيفة showmodal ()
{{
var return = window.showmodaldialog ("sub.html؟ temp ="+math.random () ، window) ؛
// للكروم
إذا (ret == غير محددة)
{{
ret = window.returnvalue ؛
}
تنبيه ("قيمة الإرجاع الفرعي هي"+ret) ؛
}
</script>
<body>
<input id = button1 type = button value = "open sub" name = button1 onClick = "showModal () ؛" >>
</body>
</html>
sub.html
نسخ رمز رمز على النحو التالي:
<html>
<head>
<meta name = "general" content = "Oscar999">
</head>
<script>
وظيفة returnmain ()
{{
إذا (window.opner! = غير محدد)
{{
Window.Opner.RETURNVALUE = "العودة من الفرع" ؛
} آخر {
Window.RETURNVALUE = "العودة من الفرعية" ؛
}
window.close () ؛
}
</script>
<body>
<input id = button1 type = button value = "return and ake" name = button1 onClick = "ReturnMain ()">
</body>
</html>
هذا هو تحديد ما إذا كان يتم تعريف بعض الكائنات لتمييز المتصفحات. بالطبع ، يمكنك أيضًا الحكم على نوع نوع المتصفح
يتم استخدام هذا لاستخدام قيمة الإرجاع في النافذة الأصل.
var oldvalue = window.returnvalue ؛
var newValue = showmodaldialog ()
Window.RETURNVALUE = OLDVALUE
6. تجدر الإشارة إلى أن الاختبار تحت Chrome يحتاج إلى وضع ملف HTML في خادم الويب (Tomcat ، ...) للوصول إلى الاختبار تحت عنوان URL HTTP. خلاف ذلك ، لن ينجح.