يمكن اكتشاف XHTML تحليل الأخطاء باستخدام جافا سكريبت ؟

StackOverflow https://stackoverflow.com/questions/449551

سؤال

عندما يكون لدي توصيف خطأ في صفحة XHTML, موزيلا فايرفوكس يعرض "الأصفر شاشة الموت" ، والتي تبين فقط أحمر كبير رسالة الخطأ على خلفية صفراء.

في حين أن هذه الأخطاء نادرة, هم للغاية المستخدم ودية.

هل هناك طريقة يمكنني الكشف عن هذه باستخدام جافا سكريبت ، ومن ثم إرسال الرسالة مرة أخرى إلى الخادم ؟

ماذا اكتشفت حتى الآن:- مخطوطات وضعت قبل تحليل خطأ لا تزال تعمل.(بالطبع). - مهلة وفترات التي تم تعيينها في هذه النصوص لا تزال تنفذ بعد تحليل الخطأ.- في فايرفوكس ، DOM هو <parsererror> مع <sourcetext> في داخله.لا يمكن الكشف عن هذا إذا كنت الاستعلام document.firstChild.tagName.

الأسئلة المتبقية:- ما هي الأحداث التي يمكنني الاستماع إلى كشف هذا يحدث ؟ (الاقتراع سيء.) - كيف يمكن اكتشاف هذا في المتصفحات الأخرى ؟

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

المحلول

اصطياد أخطاء التحليل على العميل قد يكون ممكنا, لكنه حقا حل مشكلة الخطأ.

أعرف أن هذا ليس ما طلبته ولكن إلا إذا كنت تفعل شيئا حقا XHTML محددة مثل تضمين بعض العلامات الأخرى ، ينبغي أن تكون الصفحة الخاصة بك كما نص/html بدلا من تطبيق/xhtml+xml.حتى لو كان XHTML.قبل التقديم كما نص/html عليك تجنب المشكلة كنت تقوم بتشغيل إلى وتسمح الصفحة الخاصة بك للعمل في أي كذلك.علما أنه نوع MIME وليس doctype الإعلان الذي يحدد أي محلل يستخدم -- باستخدام الانتقالية doctype لن تفعل ذلك.

أنه قال: إذا كنت متأكد من رغبتك في الصفحة الخاصة بك تحليل كما XHTML, فمن الأفضل للتعامل مع هذا النوع من خطأ على الخادم.إنشاء الصفحة الخاصة بك عن طريق بناء دوم ومن ثم إرسال النتيجة من التسلسلية ذلك.إذا كان هذا ليس خيارا ، ثم تبدأ عن طريق توليد الصفحة كما تفعل الآن ولكن لا إحالته إلى العميل بعد.اتخاذ XHTML أن كنت قد ولدت وتحليل ذلك من جانب الملقم مع التحقق من صحة XHTML محلل (أو على الأقل عام محلل XML).إذا كنت تحصل على الأخطاء عرض مهما كان خطأ صفحة تريد.وإلا تسلسل تحليل دوم و ترسل إلى العميل.

وباختصار ، فإن القواعد الأساسية لاستخدام التطبيق/xhtml+xml هي:

  1. لا.
  2. (للمستخدمين المتقدمين) لا, إلا إذا كنت قد ثبت أن كنت تفعل شيئا لا يعمل إذا كانت الصفحة هو بمثابة نص/html.وهذا ينطبق على قليل جزء من المئة من XHTMl الوثائق.
  3. إذا يجب أن تكون الصفحة الخاصة بك حسب الطلب/xhtml+xml, تولد مع بعض الطريقة التي تضمن صحة.
  4. إلا إذا كنت حقا تعرف ما تفعلونه ، أبدا استخدام التطبيق/xhtml+xml صفحة يتضمن إدخال المستخدم.

تذكر أن XHTML هو مجرد إعادة صياغة HTML 4 بالإضافة إلى القدرة على تضمين لغات أخرى.إذا كنت لا تستخدم التضمين ، ما عليك هو HTML 4 مع مختلف ولكن تقريبا متوافقة تماما الجملة.الأغلبية الساحقة من وثائق XHTML هناك بمثابة نص/html وبالتالي يعامل مثل HTML 4 المتصفحات.

نصائح أخرى

وهذا لا يجيب على سؤالك ولكن، بدلا من ذلك، لماذا لا تحقق XHTML الخاصة بك على الخادم الخاص بك، وبعد / عند إنشاء، وقبل إرساله إلى المتصفح؟

وسؤالي الأول سيكون: منذ Internet Explorer لا تسمح لك بسهولة لتحديد الواقع والتطبيق / XHTML + XML كنوع التمثيل الصامت، ولا يعتمد عليه كل ذلك بشكل جيد، لماذا تحتاج إلى كشف XHTML تحليل الأخطاء

وأما بالنسبة لكشف الأخطاء - إلقاء نظرة على http://www.quirksmode.org

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

وفيما يلي يجب العمل في ما لا يقل عن فايرفوكس وأوبرا:

(function() {
    if(document.documentElement &&
        document.documentElement.getAttribute('xmlns') !==
        'http://www.w3.org/1999/xhtml') {
        alert('parsing errors');
    }
    else if(document.body && document.body.lastChild) {
        alert('no parsing errors');
    }
    else setTimeout(arguments.callee, 100);
})();

وأنا أعلم أنه ربما لا يكون الجواب مفيدة للغاية، ولكن هل يعتبر التحول إلى نوع مستند الانتقالي؟

وبكل الوسائل، ووضع الملفات الخاصة بك من خلال محلل للكشف عن الأخطاء، ولكنها تفعل ذلك حاليا - من خطر تظهر للمستخدمين YSOD لا يستحق ذلك

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