خطأ وقت التشغيل المتقطع في IE7: وقعت في السطر 0، الكائن المطلوب؟ هاه؟

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

سؤال

وسوف موقع أنا أعمل على شاشات خطأ وقت التشغيل المتقطع ولكن فقط في IE7 و 8. هذا الخطأ تظهر بشكل عشوائي تقريبا (مثل، فإنه قد يطفو على السطح على تحميل الصفحة الأولي مرة واحدة أو أنه قد لا يطفو على السطح حتى الصفحة النونية حمل). يقول خطأ وقعت في السطر: 0 والخطأ هو "كائن المطلوبة". أنا باستخدام مسج في جميع أنحاء الموقع ولكن تعطيل أنه في قطعة (أي مختلف الإضافات وغيرها) لم تحل المشكلة. أنا لا تزال تضخ في ذلك، ولكن ترغب في الحصول على هذا "مساعدة!" الخروج على ستاكوفيرفلوو في حالة شخص تعاملت مع شيء مثل هذا من قبل.

ووالتقطع من ذلك هو ما الشق حقا مؤخرتي.

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

المحلول

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

ولقد بضعة اقتراحات حول كيفية التعامل مع هذا، ولكن سيكون لديك في محاولة منهم لتقييم مدى فائدتها.

1 / بدلا من جعل حكم على أساس الهوية من 'رأس قسم'، جعلها تقوم على القسم رأس الطبقة. لا تقم بإضافة هذه الفئة إلى الترميز، ولكن إضافته عند الانتهاء من تحميل الوثائق، عبر مسج - ترك هوية العنصر كما هو ...

$(document).ready(function(){
  $("#header-section").addClass("header-section");
});

و2 / جعل الحكم أكثر تسامحا من 'القسم المحتوى "لم يتم العثور على - غير متأكد من كيفية غالبا ما يتم تقييم التعبير، ولقد شعرت أبدا الحاجة إلى استخدام التعبير في قواعد المغلق، وحتى هذا قد لا تعمل .

#header-section {margin-top: expression((0 - (this.offsetHeight + (document.getElementById("content-section") ? document.getElementById("content-section").offsetHeight : 0))) + "px");}

واسمحوا لي أن أعرف كيف تحصل على.

وP.S. ليس لدي فكرة عما القاعدة تحاول تحقيق - أنا سخر حتى صفحة مع ما أفترض هو نفس التصميم، وكل ما يفعله هو نقل الكثير من المحتوى من أعلى الصفحة، في الطريقة التي يمنع كان من أي وقت مضى ان ينظر اليها.

نصائح أخرى

ويبدو أن السيناريو الخاص بك قد تحاول الوصول إلى كائن قبل تم إنشاء DOM تماما. هل عليك التأكد من أنك هي وظيفة داخل وظيفة مسج جاهزة؟

   $(document).ready(function() {
          // put all your jQuery goodness in here.

   });

وأنا أحسب من ذلك. هناك تعبيرين المستخدمة في ملف فقط المغلق IE. هنا هو واحد على سبيل المثال:

#header-section {margin-top: expression((0 - (this.offsetHeight + document.getElementById("content-section").offsetHeight)) + "px");}

وتعليقا خارج كلتا الحالتين أن استخدام هذه التعبيرات لا يحل المشكلة. لا يدري لماذا يحدث هذا بالضبط (وأنا لم أكتب CSS أن يفعل هذا حتى لم يكن لدي أي فكرة حتى ننظر في هذا الملف CSS).

لا يمكن أن يكون صراع مع JS آخرين لأن هناك لا يقل عن 2 الأماكن كان يستخدم هذا حيث يجري تحميل أي JS الآخرين على الإطلاق بعد الخطأ ما زال يحدث. ربما معرفات (محتوى القسم أو مقطع الرأس) لا يمكن العثور عليها لسبب ما؟ لست متأكدا حقا ... لا سيما وأن كان سلوك غير متناسقة للغاية. هممم ...

وشكرا على الحل belugabob

ولقد واجهت نفس الخطأ مع كائن المطلوبة على خط 0. الإصلاح الخاص بك مع التعبير ...:؟. 0 في المغلق للأي أنماط قام بهذه المهمة

والسبب يستخدم هذا النوع من التعليمات البرمجية، نقل والملاحة / رؤوس يصل، هو SEO ذات الصلة. تريد المحتوى الخاص بك على أعلى وأقل أهمية SE الملاحة الحكمة تحتها.

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