Plugin jQuery OEmbed - Erreur: L'objet ne prend pas en charge cette propriété ou cette méthode

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

Question

J'utilise actuellement le plug-in jQuery suivant: jQuery OEmbed. Ce plugin fonctionne très bien dans FF, Chrome et Safari. Cependant, j'ai un problème dans IE7. J'ai réduit mon code au strict minimum, mais je ne peux toujours pas comprendre ce qui provoquerait l'erreur suivante:

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

La ligne à laquelle l'erreur fait référence est la suivante:

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

Voici mon code 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 code javascript du plug-in est disponible ici .

Fait intéressant, cette erreur ne se produit PAS dans IE8 - uniquement dans IE7.

Des idées sur ce qui pourrait causer cette erreur?

Était-ce utile?

La solution

JSLint indique, entre autres problèmes, que le code du plug-in auquel vous êtes lié comporte une virgule supplémentaire dans un littéral d'objet. . Corriger cela semble résoudre le problème dans IE7.

Le correctif:

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

devient:

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

Notez la virgule après " remplacer ".

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top