Page 1 sur 2

Permission denied to call method location.toString()

Publié : 30 août 2007, 15:19
par cassy
Salut
J'ai une erreur avec Firefox:
Error: uncaught exception: Permission denied to call method Location.toString
Apparemment c'est lié à Flash+iframe

J'ai donc un http://www.site1.com/index.html
dans index.html, j'ai une iframe avec src="http://www.site2.com/index.php"
index.php fait appel à des javascripts sur le même domaine que site2.com

ces javascripts font une transformation xslt qui m'affiche du flash.
dont la source est sur le même domain que l'url de la frame... (http://www.site2.com/monsuperflash.swf)


J'ai aussi essayé la librairie SWFObject.js qui est dit être la meilleur façon pour importer du Flash...
Mais rien y fait j'ai toujours cette erreur.

Si je l'enlève de ma page le code qui importe flash, je n'ai plus ce message d'erreur.

Vous pouvez m'en dire +? Comment résoudre ce problème?

Merci.
Cassy.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Swiftfox/2.0.0.3

Publié : 30 août 2007, 21:13
par jpj
Bonsoir,

[Modération] Je déplace dans "Développement web".

Publié : 31 août 2007, 08:46
par calimo
Pas sur d'avoir tout compris...
Error: uncaught exception: Permission denied to call method Location.toString
Je doute que ce soit le message d'erreur complet...

Peut-on voir le problème ? Ou bien c'est un projet top-secret ?

Publié : 31 août 2007, 09:53
par cassy
si c'est le message d'erreur complet...

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Swiftfox/2.0.0.3

Publié : 31 août 2007, 10:02
par calimo
Et le contenu de l'iframe est là : (lien supprimé à la demande de cassy)

Rarement vu ça, c'est du 100% pur javascript. Et il y a au moins assez d'avertissements :?

Pour l'erreur je pensais qu'il serait indiqué dans quel fichier et à quelle ligne elle a lieu... ce n'est pas le cas :?

Publié : 31 août 2007, 18:59
par cassy
(lien supprimé à la demande de cassy)
effectivement évitez de mettre des url en dur...
Je laisse l'erreur jusqu'à lundi pour que vous m'aider à la résolution du probleme...
après ça je supprimerais aussi mon lien car le flash n'étant pas crucial, il sera supprimé pour firefox vu qu'il pète une erreur.

Voilà c'était pour savoir si cette erreur disait quelque chose à quelqu'un et surtout savoir comment la résoudre...
Rarement vu ça, c'est du 100% pur javascript.
Heureusement que non. :wink:
Pour l'erreur je pensais qu'il serait indiqué dans quel fichier et à quelle ligne elle a lieu... ce n'est pas le cas
lol c'est quand même limite me prendre pour une quiche...bref..

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070801 BonEcho/2.0.0.6

Publié : 01 sept. 2007, 09:08
par calimo
cassy a écrit :effectivement évitez de mettre des url en dur...
Tu ferais donc partie de ceux qui souhaitent restreindre le droit de faire des liens ? :-P

cassy a écrit :Voilà c'était pour savoir si cette erreur disait quelque chose à quelqu'un et surtout savoir comment la résoudre...
Disons qu'il faudrait savoir ce qu'est ce "Location"... s'il s'agit de document.location, il faudrait peut-être le mettre en minuscule... :roll:

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i586; en-US; rv:1.7.3) Gecko/20040924 Epiphany/1.4.4 (Ubuntu)

Publié : 01 sept. 2007, 12:13
par cassy
Le pb n'est de toute façon pas dans mon code javascript...
C'est une exception du à la politique de sécurité de firefox quand on met du flash dans une iframe...

Code : Tout sélectionner

<html>
<body>
<iframe src="http://www.youtube.com/watch_fullscreen?video_id=9sJUDx7iEJw&l=121&sk=UnjJpuR0NDHMvSZAZ3CRxQC&t=OEgsToPDskK39NdmaWFRs4KanhATHLTd"></iframe>
</body>
<html>
ça le fait aussi avec la balise object

Code : Tout sélectionner

<object data="http://www.youtube.com/watch_fullscreen?video_id=9sJUDx7iEJw&l=121&sk=UnjJpuR0NDHMvSZAZ3CRxQC&t=OEgsToPDskK39NdmaWFRs4KanhATHLTd" type="text/html"></object>
Error: uncaught exception: Permission denied to call method Location.toString
y'aurait il une astuce?

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en; rv:1.8.1.6) Gecko/20070801 Epiphany/2.18 Firefox/2.0.0.4

Publié : 01 sept. 2007, 22:55
par Benoit
Comme tu as enlevé le code qui permettait de comprendre ce que tu essayais de le faire, ça va être difficile de t'aider.

À priori, sans rien connaître de ton site, je dirais que ta solution d'utiliser un iframe est une mauvaise idée. Soit tu as le contrôle de site1 et site2 et tu peux t'arranger pour toujours utiliser des pages dans le même domaine, soit tu n'as accès qu'à site1 et tu fais ta transformation de site2 depuis le serveur et tu l'intègres de façon transparente dans ta page sur site1 (si du moins tu as le droit de transformer et rediffuser cette information).

Publié : 02 sept. 2007, 17:23
par cassy
Comme tu as enlevé le code qui permettait de comprendre ce que tu essayais de le faire, ça va être difficile de t'aider.
Au dessus de ton post, tu as un exemple explicite du problème.
je dirais que ta solution d'utiliser un iframe est une mauvaise idée.
je ne suis pas fan de l'iframe, je suis consciente qu'il faudrait utiliser object.
Le but est d'integrer le site2 dans site1.
(ça ne peut donc pas être le même domaine.)
Je n'ai pas le controle du site1, je peux juste leur dire de mettre tel tag.
Je n'ai accès qu'au site2.
Je ne pense pas que je puisse envoyer le flash sur leur server.

En attendant, je l'enlève...si quelqu'un a trouvé la solution je remettrais flash pour FF.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1.6) Gecko/20061201 Firefox/2.0.0.6 (Ubuntu-feisty)

Publié : 02 sept. 2007, 17:39
par Benoit
Dans ce cas, YouTube est un exemple vivant que ça fonctionne d'utiliser du Flash avec un objet provenant d'un autre domaine.

Maintenant il faudrait voir dans quel contexte s'exécute le script qui essaie d'obtenir la valeur de "Location". S'il est du mauvais côté il devrait au pire y avoir moyen de l'importer indirectement avec un XMLHttpRequest et un eval().

Bon sinon, les choses que je ne comprends pas : est-ce que tu as pu identifier la ligne qui posait problème ? Tu appelles explicitement la propriété location d'un document ? Si oui, dans quel but ?

Publié : 03 sept. 2007, 10:52
par cassy
Dans ce cas, YouTube est un exemple vivant que ça fonctionne d'utiliser du Flash avec un objet provenant d'un autre domaine.
???
T'as pris le code + haut et t'as aucune exception?
ptete un probleme du plugin flash sur linux alors...
[edit] ça me pete une exception sur le firefox de windows aussi...

Comme je l'ai dit ça rien à voir avec javascript.
a aucun moment j'appelle location.toString() ni location.

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Swiftfox/2.0.0.3

Publié : 03 sept. 2007, 19:53
par Benoit
Ben en fait je n'ai surtout aucune vidéo qui s'affiche, même quand je vais à l'URL complète à la main. Donc j'ai l'impression qu'il y a un problème avec l'URL (une session expirée ?).

Par contre, les vidéos obtenues en recopiant le code suggéré par YouTube comme celle-ci ça a l'air de fonctionner :

Code : Tout sélectionner

<object width="425" height="350"><param name="movie" value="http://www.youtube.com/v/9sJUDx7iEJw"></param><param name="wmode" value="transparent"></param><embed src="http://www.youtube.com/v/9sJUDx7iEJw" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"></embed></object>

Publié : 05 sept. 2007, 09:31
par cassy
ok merci ça marche en faisant une page html...
moi ça me pete toujours l'erreur dans une transformation xslt...
Surement un probleme de DOCTYPE...je regarde.

[edit] J'ai essayé les doctypes transitionnal ou strict dans une page html ça marche sans péter d'exception....
Ce n'est donc pas un problème de doctype [/edit]

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Swiftfox/2.0.0.3

Publié : 05 sept. 2007, 11:12
par cassy
en xsl le code s'ecrit comme ça et le flash ne s'affiche pas (aucune exception n'est levée)
<object>
<xsl:attribute name="width">425</xsl:attribute>
<xsl:attribute name="width">350</xsl:attribute>
<param>
<xsl:attribute name="name">movie</xsl:attribute>
<xsl:attribute name="value">http://www.youtube.com/v/9sJUDx7iEJw</xsl:attribute>
</param>
<param>
<xsl:attribute name="name">wmode</xsl:attribute>
<xsl:attribute name="value">transparent</xsl:attribute>
</param>
</object>
En écrivant ainsi ça marche mais ça pete une exception.
<object>
<xsl:attribute name="data">http://www.youtube.com/v/9sJUDx7iEJw</xsl:attribute>
<xsl:attribute name="quality">high</xsl:attribute>
<xsl:attribute name="name">monFlash</xsl:attribute>
<xsl:attribute name="type">application/x-shockwave-flash</xsl:attribute>
<xsl:attribute name="width">565</xsl:attribute>
<xsl:attribute name="height">400</xsl:attribute>
</object>
Une idée?

Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Swiftfox/2.0.0.3