web-dev-qa-db-fra.com

Remplacer l'URL de YouTube pour incorporer le code - Erreur: autorisation refusée d'accéder à la propriété 'toString'

J'ai ce code et cette erreur dans FireBug:

Erreur: autorisation refusée d'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/

43
JohnMalcom

L'erreur peut être corrigée par l'équipe d'Adobe Flash Player ou par les ingénieurs de Google - vous devez simplement l'ignorer pour l'instant. Il est connecté aux paramètres de sécurité de Flash Player et au fichier SWF intégré à la page Youtube. Le problème a été signalé par le passé par IBM , et il y a aussi entrée Mozilla Bugzilla .

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

Pour ce que ça vaut, je vois ce bogue se produire lorsque n'importe quel fichier flash, même ceux qui ne contiennent AUCUN appel d'actionscript (ExternalInterface, etc.), est chargé dans une iframe sur un page où le domaine de page et le domaine iframe sont différents. Cela signifie que le problème iframe est dû à une situation inter-domaines en place. Cependant, il n'est pas totalement clair s'il y a vraiment une tentative d'appel interdomaine qui devrait être empêché et éliminé.

Parce que ce n'est rien que le SWF flash lui-même essaie d'appeler pour faire "Location.toString", et que rien sur le javascript sur la page ne le fait, le seul choix est qu'il y a quelque chose à propos du plugin flash lui-même (9.0.124 est ce que Je teste avec) qui essaie de faire cet appel à la fenêtre parent/top 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 (les deux dans la console Firebug ou dans la fenêtre Firefox Error Console).

Mise à jour:
Le bogue a également été déposé auprès d'Adobe dans l'ancienne base de données de bogues: exception FP-561 "Location.toString" non interceptée (sécurité) causée par un comportement incorrect du plug-in Flash (vous avez besoin d'un pour voir les détails du bogue). Le dernier commentaire là quand le bug a été fermé:

Testé avec le dernier Flash Player 10.3.181.34 sur Firefox 4 et 5, aucune exception de ce type n'a été levée. Donc, le bug a peut-être été corrigé, non? Si vous rencontrez toujours ce problème, veuillez déposer un bogue dans notre nouveau système de bogues https://bugbase.Adobe.com/ et mettre un lien dans le nouveau bogue vers ce rapport JIRA original. Nous sommes heureux de suivre votre rapport dans le nouveau système de bogues.

67
raju-bitter

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

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

Ajoutez simplement ?html5=1 à votre URL d'intégration. IE8 prendra toujours la version flash. ou chargez votre vidéo avec l'API Youtube.

48
air

Quelque chose ne va probablement pas avec votre constructeur d'URL Iframe. L'erreur est lancée dans un script youtube qui se charge dans l'Iframe. La même erreur est générée avec un iframe html codé en code 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>

Démo version HTML uniquement http://jsfiddle.net/Lgt5f/

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

2
charlietfl

Ce problème peut être dû à une extension qui ne fonctionne pas correctement.

Démarrez Firefox dans Dépanner les problèmes de Firefox en utilisant le mode sans échec pour vérifier si l'une des extensions ou si l'accélération matérielle est à l'origine du problème (basculez vers le thème PAR DÉFAUT: Firefox/Outils> Modules complémentaires> Apparence/Thèmes).

1
NullPoiиteя

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

0
Alvarez