نظرًا لأن النظام يجب أن يكون متوافقًا مع طريقة الإغلاق المستخدمة من قبل IE الأصلي ، بعد تصحيح الأخطاء والاختبار ، يجب اختبار الوراثة.
وظيفة OKEND (vals) {if (vals == null) vals = "true" ؛ if (typeof (window.opener) == "undefined") {if (typeof (window.dialogarguments)! = "undefined") {if (window.dialogarguments && window.dialogarguments! = null) {window.opener = window.dialogarguments ؛ if (window.opener && window.opener! = null) {window.opener.ReturnValue = vals ؛ }}}} آخر {if (window.opener && window.opener! = null) {window.opener.returnvalue = vals ؛ }} window.returnvalue = vals ؛ self.close () ؛}للحصول على قيمة الإرجاع المستلمة ، تحتاج فقط إلى التحقق من المباراة الافتتاحية في وضع الاستقبال IE الأصلي ، على النحو التالي:
// حدد تغيير دالة القسم setorganizetree2 () {var url = "popup page" ؛ var ret = window.showmodaldialog (url ، window ، "dialogwidth = 400px ؛ dialogheight = 500px ؛ status = no ؛ help = no ؛ scroll = yes ؛ resizable = yes ؛") ؛ if (typeof (ret) == "undefined") {ret = window.returnvalue ؛ } if (ret) {document.getElementById ("hiddeptcode2"). value = ret ؛ document.getElementById ("btndeptcodeadd"). انقر () ؛ } إرجاع خطأ ؛ }الحل الأمثل لمشكلة التوافق لقيمة إرجاع نافذة JS Modal
1. عند فتح النافذة المنبثقة ، تمرير نافذة كمعلمة ثانية.
var result = window.showmodaldialog (url ، window ، "dialogwidth =" + width + "px ؛ dialogheight =" + height + "px ؛ resizable: yes ؛") if (typeof (result) == 'undefined') {result = window.returnvalue ؛ } نتيجة الإرجاع ؛2. في النافذة المنبثقة ، قم بتنفيذ JS التالي لتلقي النافذة الواردة
if (typeof (window.opener) == 'undefined') window.opener = window.dialogarguments ؛
3. قبل إغلاق النافذة المنبثقة ، اتصل بمهمة JS التالية لإرجاع القيمة
Window.RetureValue = vals ؛ if (window.opener && window.opener! = null) window.opener.returnvalue = vals ؛ window.close () ؛
مناقشة مبدأ:
تحت Chrome ، يمكن للطريقة القياسية إرجاع القيمة عندما لا تقوم الصفحة المنبثقة بإعادة نشرها. إذا كان هناك Postback ، فلا يمكن إرجاع قيمة الإرجاع بشكل طبيعي. يمكن حل هذه الطريقة.
الطرق القياسية بموجب IE ، في بعض الأحيان لا يمكن إرجاع القيمة بشكل صحيح لأسباب غير معروفة ، ويمكن حل هذه الطريقة.
لم يتم اختبار FF بالتفصيل ، لذلك لا ينبغي أن تكون هناك مشكلة كبيرة.
الحل الأمثل لمشكلة توافق قيمة إرجاع نافذة JS أعلاه هو كل المحتوى الذي أشاركه معك. آمل أن تتمكن من إعطائك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.