Sweetalert: الحصول على "خطأ في النطاق غير معلوم: تجاوز الحد الأقصى لحجم مكدس الاستدعاءات." خطأ

تم إنشاؤها على ١٠ أكتوبر ٢٠١٤  ·  10تعليقات  ·  مصدر: t4t5/sweetalert

SweetAlert يعمل بشكل مثالي ، لكن لدي خطأ. أستخدم مشروط bootstrap وأثناء فتحه ، أستخدم أيضًا SweetAlert. بعد النقر فوق "إلغاء" ، "موافق" .... في SweetAlert ، تلقيت خطأ "Uncaught RangeError: تجاوز الحد الأقصى لحجم مكدس المكالمات". المشكلة هنا:

      if (btnIndex === -1) {
        // Something in the dom, but not a visible button. Focus back on the button.
        $targetElement.focus();
      }

عندما أعلق على هذا الرمز ، لم يعد لدي خطأ.
ملاحظة: لا أحصل على هذا الخطأ عندما لا يكون لديّ الوضع مفتوحًا.

التعليق الأكثر فائدة

لدي الحل:
تصريح علني:
$targetElement.focus ();
_ربما في الصف 413 ._

ال 10 كومينتر

كان لدي هذا الخطأ أيضا.
هذا بسبب تعطل SweetAlert مع مشروط التمهيد ، أعتقد أنك تحاول المطالبة بتنبيه لطيف عندما يكون لديك نموذج مفتوح (من bootstrap). هذا عندما يحدث هذا الخطأ الذي ذكرته.
أنت بحاجة إلى حد ما (حسنًا ، لا أعرف ما هي احتياجاتك) أولاً ، أغلق مشروط التمهيد ، وبعد ذلك فقط وجه تنبيهًا لطيفًا. وسيكون الأمر على ما يرام.

شكرا @ littleneotrix. بالضبط ، كنت أحاول توجيه التنبيه الجميل أثناء فتح مشروط التمهيد ويعمل الحل الخاص بك تمامًا ، ولكن في تطبيقي كنت بحاجة إلى ترك الأمر على هذا النحو ، ولهذا السبب اضطررت إلى التعليق على الكود.

حسنًا ، حتى تتمكن من محاولة اللعب بها قليلاً ...
يمكنك باستخدام Javascript مباشرة قبل فتح Sweetalert ، فقط استخدم .hide () في مشروط bootstrap ،
وبعد ذلك فقط افتح Sweetalert ، لكن افعل ذلك على هذا النحو أكثر أو أقل:

swal({   title: "Are you sure?",   text: "Your will not be able to recover this imaginary file!",   type: "warning",   showCancelButton: true,   confirmButtonColor: "#DD6B55",   confirmButtonText: "Yes, delete it!",   closeOnConfirm: false }, function(){   $('#myModal').modal('show')});

كما ترون في الوظيفة في نهاية الكائن ، أقول له أن يطالب بإعادة الوسيط.
لذا ... قم أولاً بإخفاء النموذج -> اطلب من sweetalert -> عند تأكيد sweetalert ، قم بإعادة الطلب.
هذا هو أفضل حل يمكنني تقديمه ؛)
ما لم يكن بالطبع التمهيد إصلاح هذا الشيء.

أواجه نفس المشكلة. هل هذه مشكلة تمهيدية أم حلوة؟ تم إنشاء رسالة التحذير في حالتي بواسطة sweetalert ، ولكن يمكن أن يكون سببها bootstrap.

لقد حصلت على نفس الخطأ
في حالتي ، لدي أزرار في شكلي ، الأزرار تعني حذف الأشياء ، عند النقر عليها أستخدم swal للتأكيد ، في هذه المرحلة لا يوجد خطأ ، ولكن عند المتابعة والنقر فوق الزر "إلغاء" أو "تأكيد" ، أحصل على خطأ.

أتلقى هذه المشكلة أيضًا ، مع تأجيل استخدام فئة تنبيه bootstrap في الوقت الحالي.

واجهت نفس المشكلة وتوصلت إلى طريقة لائقة للتعامل معها. أقوم بإخفاء النموذج ، وإظهار swal ، والتأكيد على إعادة الشكل. إذا كان الشخص يستخدم نافذة منبثقة رائعة على سبيل المثال ، فسيبدو الرمز مشابهًا لهذا:

$('.mfp-wrap').hide();
swal({
    title: "Updated!",
    text: "#" + data.updateData['number'] + " was successfully updated",
    type: "success"
},
function(isConfirm) {
    $('.mfp-wrap').show();
});

هذا ما كان يتحدث عنه littleneotrix . أنا فقط لم أفهم تفسيره في البداية وتعتقدت أنني سأقدم مثالاً أكثر تفصيلاً. أجده حلاً أنيقًا بدرجة كافية لحالة الاستخدام الخاصة بي.

بالنسبة لأولئك الذين يسألون ، لا أعتقد أن هناك الكثير الذي يمكن للمطورين القيام به لإصلاح هذه المشكلة. الوسائط المزدوجة وعمليات الاسترجاعات ضخمة.

لدي الحل:
تصريح علني:
$targetElement.focus ();
_ربما في الصف 413 ._

فقط أضف $.fn.modal.Constructor.prototype.enforceFocus = function () {}; قبل الاتصال بـ swal(...);

دعنا نحتفظ بها في مشكلة واحدة: https://github.com/aspnetboilerplate/aspnetboilerplate-templates/issues/48

لا تتردد في تجربة هذا مرة أخرى في SweetAlert 2.0.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات