43 votes

Remplacer l'url de youtube par le code d'intégration - Erreur : Permission refusée pour accéder à la propriété 'toString'.

J'ai ce code et cette erreur dans FireBug :

Erreur : Permission refusée pour accéder à la propriété 'toString'.

Comment puis-je corriger cette erreur ?

HTML :

<div class="yturl">http://www.youtube.com/watch?v=UNMLEZrukRU</div>

JS :

$("div.yturl").each(function(){
    var regex = /(\?v=|\&v=|\/\d\/|\/embed\/|\/v\/|\.be\/)([a-zA-Z0-9\-\_]+)/;
    var youtubeurl = $(this).text();
    var regexyoutubeurl = youtubeurl.match(regex);
    if (regexyoutubeurl) 
    {
         $(this).html("<iframe width=\"390\" height=\"315\" src=\"http://www.youtube.com/embed/"+regexyoutubeurl[2]+"\" frameborder=\"0\" allowfullscreen></iframe>");
    }
});

DEMO : http://jsfiddle.net/9e48p/

67voto

raju-bitter Points 3789

L'erreur peut être corrigée soit par l'équipe Flash Player d'Adobe, soit par les ingénieurs de Google - vous devez simplement l'ignorer pour le moment. Le problème est lié aux paramètres de sécurité de Flash Player et au fichier SWF intégré à la page Youtube. Le problème a été rapporté dans le passé par IBM et il y a un Entrée de Mozilla Bugzilla également.

Lorsque je désactive Flash Player dans Firefox 16.0.2, le message d'erreur disparaît. Vérifiez le commentaire n°37 : https://bugzilla.mozilla.org/show_bug.cgi?id=434522#c37

Pour ce que ça vaut, je vois ce bug se produire lorsque cualquier fichier flash, même ceux qui n'ont AUCUN appel d'actionscript (ExternalInterface, etc). d'actionscript (ExternalInterface, etc.), est chargé dans une iframe sur une page dont le domaine de la page et le domaine de l'iframe sont différents. Cela signifie que l'iframe est causé quand il y a en fait une situation inter-domaine en place. en place. Cependant, il n'est pas tout à fait clair s'il y a vraiment une tentative d'appel inter-domaines que devrait être évitée et d'erreur.

Parce qu'il n'y a rien que le SWF Flash lui-même essaie d'appeler pour faire "Location.toString", et il n'y a rien sur le javascript sur la page qui le fait, le seul choix possible est qu'il y a quelque chose à propos du plugin flash flash lui-même (9.0.124 est celui avec lequel je teste) qui essaie de faire cet appel à la fenêtre parent/en haut pour faire Location.toString().

Alors que le bogue est marqué comme résolu, le cas de test joint https://bug434522.bugzilla.mozilla.org/attachment.cgi?id=321956 produit le même message d'erreur dans la dernière version de Firefox (tant dans la console Firebug que dans la fenêtre de la console d'erreurs de Firefox).

Mise à jour :
Le bogue a été signalé à Adobe ainsi que dans l'ancienne base de données des bogues : FP-561 Exception non attrapée (sécurité) "Location.toString" causée par un comportement inapproprié du plugin Flash (vous devez avoir un compte pour voir les détails du bogue). Le dernier commentaire est là lorsque le bogue a été fermé :

Testé avec la dernière version de Flash Player 10.3.181.34 sur Firefox 4 et 5, aucune exception de ce type n'a été levée. aucune exception de ce type n'a été levée. Le bogue a donc été corrigé, non ? Si vous rencontrez toujours ce problème, veuillez déposer un bug dans notre nouveau système de bug https://bugbase.adobe.com/ et mettez un lien dans le nouveau bug vers ceci rapport JIRA original. Nous serons heureux d'assurer le suivi de votre rapport dans le nouveau système de bogues.

48voto

air Points 151

N'ignorez pas cette erreur simplement parce qu'elle n'est pas directement liée à votre code.

Cela semble se produire lorsque l'intégration est initialement cachée.

Il suffit d'ajouter ?html5=1 à votre URL d'intégration. IE8 prendra toujours la version flash. ou chargez votre vidéo avec l'api Youtube.

2voto

charlietfl Points 41873

Il y a probablement un problème avec le constructeur de votre url Iframe. L'erreur se produit dans un script youtube qui se charge dans l'Iframe. La même erreur se produit avec un Iframe html codé en dur qui n'est pas ajouté dynamiquement avec votre script.

<iframe width="390" height="315" src="http://www.youtube.com/embed/UNMLEZrukRU" frameborder="0" allowfullscreen></iframe>

Version HTML uniquement démo http://jsfiddle.net/Lgt5f/

Vérifiez que l'url ne manque pas de paramètre, sinon je vérifierais les ressources du support youtube.

1voto

NullPoiиteя Points 23754

Ce problème peut être causé par une extension qui ne fonctionne pas correctement.

Lancez Firefox en mode sans échec pour vérifier si l'une des extensions ou l'accélération matérielle est à l'origine du problème (passez au thème par défaut : Firefox/Outils > Modules complémentaires > Apparence/Thèmes).

0voto

Alvarez Points 423

Ignorez cette erreur, elle n'est pas liée à votre code. Juste un bug du navigateur.

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