2009-09-02 1 views
2

Эта строка 79:Интернет исследователь говорит Объект не поддерживает это свойство или метод

window.addEvent('domready', function(){  
    mySlide = new Fx.Slide('advert'); 
    mySlide.hide(); 
}); 

Он также не любит эту строку:

this.wrapper = new Element('div', 
          { 
           'styles': $extend(
               this.element.getStyles('margin'), 
               {'overflow': ''} 
               ) 
          }) 
       .injectAfter(this.element) 
       .adopt(this.element); 

Кто-нибудь знает, почему это происходит? Кто-нибудь знает, как это исправить? Я использую jQuery и Mootools .. и хотел найти решение.

ответ

3

У вас есть jQuery/mooTools, включенные до этой конкретной строки в файле? Мне кажется, что вы включили плагин или другой javascript, прежде чем включать фреймворк, на который он опирается. Я предполагаю, что вы также используете jQuery в режиме noConflict(), так как вы используете jQuery и mooTools.

-1

похоже, что вы не используете jQuery. Я не говорю MooTools, поэтому я не могу получить это совершенно верно, но я хотел бы попробовать что-то вроде этого:

jQuery(document).ready(function() { 
    //you could convert this to jQuery too, of course 
    mySlide = new Fx.Slide('advert'); 
    mySlide.hide(); 
}); 

jQuery(this).wrap('<div class="overflow-wrapper"></div>') 
      .parent('.overflow-wrapper').css('overflow', ''); 
0

Эта ошибка обычно приходит с IE, если вы пытаетесь присвоить некорректное значение для свойства стиля. Если вы используете IE8, и вы включили возможность отладки javascript в разделе tools-> options-> advanced, тогда вы можете попробовать отладить его и посмотреть, какое присвоение свойств выбрасывает эту ошибку, а затем попытайтесь исправить это.

35

В случае, если вы приземляетесь на эту страницу, отчаянно ищите причину возникновения этой ошибки в IE, позвольте мне указать другой способ, которым это может случиться. Надеюсь, что либо простой акт, который я разместил, это поможет мне запомнить это, или этот вопрос появится в google в следующий раз, когда я столкнусь с этой ошибкой. Кажется, это происходит не реже одного раза в два года.

Это может отображаться, если вы назвали переменную (не уверен, что она должна быть глобальной, мой был на этот раз) то же самое, что и идентификатор элемента. Например:

<div id="foo"> 
</div> 
<script type="text/javascript"> 
    var foo = 1; < --Object doesn 't support this property or method!! 
</script> 
+2

Спасибо, я бы никогда не догадался об этом. Псих. Похоже, что он должен быть глобальным. Для меня, внутри функции, объявление с var works и без var терпит неудачу. – user568458

+0

WOW. Не могу поверить в IE. Просто спас мне кучу времени ... – BenB

+0

Кажется, эта проблема возникает и в случае, если вы вызываете объект n как класс. И.Е. Если вы определяете window.foo = new Foo(); у вас будет ошибка «Объект не поддерживает это свойство или метод». Невероятно. – Federinik

3

+1 для более раннего ответа об именах переменных. Это в IE8:

title = button.attr('title'); <-- Object doesnt support this method 

$title = button.attr('title'); <-- OK! 
0

Это также может произойти, если вы не имеете запятую в списке переменных, как «F» переменной ниже:

var a = 'aaaa', 
    f = 'ffff' 
    b = someObject.attribute; 
0

Только быстрое добавление к разговор.

В некоторых случаях (video.js/bigvideo.js приходят на ум) вам нужно запустить modernizr.js в качестве вашего первого скрипта перед jQuery или jQuery UI. Убирает все правильно.

0

(MooTools)

Мой код был что-то вроде этого:

var cancel; 
//... bla bla 
cancel = form.elements[i]; //cancel is now a <button>; no Id, unique on the page 
cancel.addEvent('click', function(e) {...}); 

И я получаю исключение, что ОП на cancel.AddEvent(). Для меня это было переписано как $(cancel).addEvent().

Какой ужасный браузер.

Смежные вопросы