1 votes

jQuery OEmbed Plugin - Error : L'objet ne supporte pas cette propriété ou méthode

J'utilise actuellement le plugin jQuery suivant : jQuery OEmbed. Ce plugin fonctionne parfaitement dans FF, Chrome et Safari. Cependant, je rencontre un problème dans IE7. J'ai réduit mon code à sa plus simple expression, mais je n'arrive toujours pas à comprendre ce qui cause l'erreur suivante :

Error: Object doesn't support this property or method.

La ligne à laquelle l'erreur se réfère est la suivante :

  $("#container").oembed("http://www.youtube.com/watch?v=nue4pvzuyOo");

Voici mon HTML (encore une fois, très basique) :

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
    <title>jquery-oembed explicit insert example</title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>    
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>  
    <script type="text/javascript" src="oe.js"></script>
  </head>
  <body>
   <script type="text/javascript">
    $(document).ready(function() {
            $("#container").oembed("http://www.youtube.com/watch?v=nue4pvzuyOo");

    });
  </script>
 <div id="container"></div>
 </body>
 </html>

Le javascript pour le plugin peut être trouvé ici .

Il est intéressant de noter que cette erreur ne se produit PAS dans IE8 - seulement dans IE7.

Avez-vous une idée de ce qui pourrait causer cette erreur ?

3voto

brianpeiris Points 7693

JSLint signale que, parmi d'autres problèmes, le code du plugin auquel vous avez accédé comporte une virgule supplémentaire dans un objet littéral. La correction de ce problème semble le résoudre dans IE7.

La solution :

// Plugin defaults
$.fn.oembed.defaults = {
    maxWidth: null,
    maxHeight: null,
            embedMethod: "replace", // "auto", "append", "fill"
};

les modifications apportées à :

// Plugin defaults
$.fn.oembed.defaults = {
    maxWidth: null,
    maxHeight: null,
            embedMethod: "replace" // "auto", "append", "fill"
};

Notez la virgule après "replace" .

Démonstration de travail : http://jsbin.com/oxitu

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X