2009-09-02 4 views
2

Cette ligne est 79:Internet Explorer dit objet ne prend pas en charge cette propriété ou méthode

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

Il n'aime pas cette ligne:

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

Est-ce que quelqu'un sait pourquoi cela se produit? Est-ce que quelqu'un sait comment réparer ceci? J'utilise jQuery et Mootools .. et je voulais une solution.

Répondre

3

Avez-vous jQuery/mooTools inclus avant cette ligne particulière dans le fichier? Il me semble que vous avez inclus un plugin ou un autre javascript avant d'inclure le framework sur lequel il s'appuie. Je suppose que vous utilisez également jQuery en mode noConflict() puisque vous utilisez à la fois jQuery et mooTools.

-1

semble ne pas vraiment tirer parti de jQuery. Je ne parle pas MooTools, donc je ne peux pas obtenir ce tout à fait raison, mais je voudrais essayer quelque chose comme ceci:

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

Cette erreur vient normalement avec IE si vous essayez d'attribuer une valeur non valide pour une propriété de style. Si vous utilisez IE8 et que vous avez activé le débogage javascript sous tools-> options-> advanced, vous pouvez alors essayer de le déboguer et voir quelle affectation de propriété renvoie cette erreur, puis essayer de rectifier cela.

35

Au cas où vous atterrissez sur cette page alors que vous cherchez désespérément pourquoi vous avez cette erreur dans IE, permettez-moi de signaler une autre façon que cela peut arriver. Heureusement, soit le simple fait que je publie ceci m'aidera à m'en souvenir, soit cette question apparaîtra dans google la prochaine fois que je rencontrerai cette erreur. Cela semble se produire au moins tous les deux ans.

Cela peut apparaître si vous avez nommé une variable (je ne sais pas si elle doit être globale, la mienne était cette fois) la même chose que l'ID d'un élément. Par exemple:

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

Merci, je n'aurais jamais deviné ça. Fou. On dirait que ça doit être global. Pour moi, dans une fonction, déclarer avec var works et sans var échoue. – user568458

+0

WOW. Je ne peux pas croire IE. Je viens de me sauver un tas de temps ... – BenB

+0

Il semble donner le même problème si vous appelez un objet comme une classe. C'EST À DIRE. Si vous définissez window.foo = new Foo(); vous aurez l'erreur 'L'objet ne supporte pas cette propriété ou cette méthode'. Incroyable. – Federinik

3

+1 pour la réponse précédente sur les noms de variables. Cela IE8:

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

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

Cela peut également se produire si vous ne disposez pas d'une virgule dans une liste de variables, comme le « f » variables ci-dessous:

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

Juste un plus rapide à la conversation.

Dans certains cas (video.js/bigvideo.js viennent à l'esprit) vous devez exécuter modernizr.js comme premier script avant jQuery ou jQuery UI. Efface les choses tout de suite

0

(MooTools)

Mon code était quelque chose comme ceci:

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

Et je recevais l'exception de l'OP sur cancel.AddEvent(). Ce qui m'a arrangé pour réécrire cela comme $(cancel).addEvent().

Quel horrible navigateur.

Questions connexes