سؤال

أنا أعاني من خطأ لم أتمكن من العثور على أي ذكر لأي مكان. أقوم بتطوير خدمة الويب WCF التي تدعم AJAX مع ASP.NET. في صفحة ASP.NET Master الخاصة بيu003Casp:ScriptManager> ، قمت بتضمين ملف JSON.JS ، نسخت Fresh من json.org. عندما أقوم بتشغيل الصفحة ، تفشل (VS 2008 يمسك باستثناء JavaScript) على السطر الأول من التعليمات البرمجية في json.js (بعد الكثير من التعليقات) ، وهو:

JSON = JSON || {};

يقول الخطأ أن JSON غير محددة:

خطأ في وقت تشغيل Microsoft Jscript: "JSON" غير محدد

حسنا ، دوه! لهذا السبب يختبر السطر إذا تم تعريفه وإذا كان الأمر كذلك ، فقم بإعداده على كائن فارغ! من المفترض أن تكون غير محددة ، أليس كذلك؟ آخر مرة سمعت أنه لم يكن خطأ في JavaScript لأداء مثل هذه العملية على متغير غير محدد.

هل يمكن لأي شخص أن يعطيني فكرة عما يحدث هنا؟ أظن أنه حدث خطأ ما في مكان آخر ، وهذا ما يسبب هذه المشكلة بطريقة أو بأخرى. ليس لدي خبرة عميقة مع JavaScript أو ASP.NET ، لذلك قد يكون الأمر في عداد المفقودين بعضًا من القولات المشتركة في الإعداد.

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

المحلول

يجب أن تستخدم JSON2.JS. تم تغيير الخط المخالف:

// Create a JSON object only if one does not already exist. We create the
// methods in a closure to avoid creating global variables.

if (!this.JSON) {
    this.JSON = {};
}

نصائح أخرى

أود أن أتأكد من أن صفحتك تقدم في وضع معايير IE8 ؛ لقد وجدت أنه إذا كانت الوثيقة تقدم في المراوغات أو وضع IE7 ، this.JSON غير محدد.

يمكنك إجبار IE8 على تقديم وضع معايير IE8 من خلال تضمين علامة التعريف التالية في صفحتك:

<meta http-equiv="x-ua-compatible" content="IE=8" />

كما ذكرنا ، يجب أن تستخدم JSON2.

الخطأ ، ومع ذلك ، ينبع من معالجة MS للمتغيرات العالمية. حاول window.json = window.json || {} ؛ ومنذ ذلك الحين ، يجب أن تعمل JSON بشكل جيد.

قد تضطر إلى القيام به var JSON = JSON || {}; لقد ركضت في مشاكل مماثلة مع JavaScript في IE8.

واجهت نفس المشكلة في محاولة لاستخدام خرائط Google "StreetView". ستحول نافذة StreetView سوداء تمامًا وسأحصل على الرمز في شريط الحالة الذي يشير إلى خطأ. لقد قمت بتعطيل Divx كما فعلت WebDEV007 وتم حل المشكلة! Webdev ، أنت عبقري! شكرًا!

لقد بدأت مؤخرًا في تلقي خطأ JavaScript غير المحدد JSON ووجدت أن المشكلة كانت بسبب إضافة Divx مؤخرًا في IE. تسببت إضافة Divx على تحذيرات محتوى آمنة على صفحات الويب التي تحتوي على جميع مراجع HTTPS وعدم وجود HTTP (قمت بتعيين محتوى مختلط العرض الخاص بي على المطالبة بتصحيح المراجع أثناء تطوير الويب). بعد تعطيل إضافة Divx على ، اختفى خطأ JavaScript غير المحدد في JSON وكذلك منبثقة محتوى آمن خاطئ.

لدي نفس الخطأ وكنت أستخدم JSON2 بالفعل ؛

بالنسبة لي يعمل عندما أضيف var قبل التعبير:

var JSON = JSON || {};
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top