سؤال

هذا الكود يسبب خطأ غريب في IE8.يأتي من MicrosoftAjaxAdoNet.js في نص الرابط

   function Sys$Data$_AdoNetBatchWriter$startChangeSet() {
        this._changesetBoundary = "changeset_" + this._createBoundary();
        this._changesetEntries = [];
    }

قبل استدعاء هذه الوظيفة، يكون this._changesetEntries فارغًا دائمًا.كنت أتوقع أن يصبح his._changesetEntries مصفوفة فارغة بعد استدعاء هذه الوظيفة.حدث ذلك كما هو متوقع في الكروم، فايرفوكس، IE8.هذا ليس صحيحًا دائمًا في IE8، لقد وجدت أنه في بعض الأحيان تقوم هذه الوظيفة بإنشاء طريقة "مؤشر (الخامس، ن)"بدلاً من المصفوفة الفارغة.

يتسبب هذا السلوك الغريب في حدوث خطأ آخر مذكور هنا نص الرابط

تعديل: يمكنني عزل هذه المشكلة عن الكود الخاص بي الآن، وتحدث هذه المشكلة عندما أستخدم مكونًا إضافيًا لـ jquery عين السمكة.في هذا البرنامج المساعد، هناك شيء من هذا القبيل

[].indexOf || (Array.prototype.indexOf = function (v, n) {
n = (n == null) ? 0 : n;
var m = this.length;
for (var i = n; i < m; i++)
if (this[i] == v) return i;
return -1;

})

وهذا هو سبب هذه المشكلة.

هل كانت مفيدة؟

المحلول

"أحيانًا" في سؤالك هو المفتاح هنا:تحت أي ظروف يفعل this._changesetEntries الحصول على وظيفة بدلا من مجموعة فارغة؟بعض تحميلات الصفحة؟بعض المكالمات إلى خدمة البيانات؟بمجرد حصولك على حالة اختبار، قد تصبح الإجابة أكثر وضوحًا.

نصائح أخرى

هل يمكنك نشر كيف تستخدم هذا؟كل ما يمكننا فعله حتى ذلك الحين هو التكهن:

هذا يبدو وكأنه منشئ.هل تستخدم هل تقوم بإنشاء مثيل باستخدام new Sys$Data$_AdoNetBatchWriter$startChangeSet()?

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top