2010-05-12 6 views
1

Est-il possible de suivre un clic de bouton dans un iFrame si je n'ai aucun contrôle sur le site Web externe ou sur son contenu?Cliquez sur le bouton de piste dans un iframe

(exemple très fictionnelle) si j'avais un iframe comme ceci:

<iframe src="http://www.johnny.com/plugins/like.php?href=http%253A%252F%252Fexample.com%252Fpage%252Fto%252Flike&amp;layout=standard&amp;show_faces=true&amp;width=450&amp;action=like&amp;font&amp;colorscheme=light&amp;height=80" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:80px;" allowTransparency="true"></iframe> 

Répondre

1

Si vous demandez si vous pouvez trouver un bouton dans le DOM du code HTML qui contient votre iframe et y ajouter un événement onclick, alors oui, si vous êtes servi du même domaine.

window.parent.getElementById() 

fonctionnera - ainsi que toutes les autres fonctions DOM.

Si vous n'êtes pas sur le même domaine, le navigateur ne vous le permettra pas. C'est ce qu'on appelle le script inter-site (XSS) et est considéré comme une violation de sécurité.

Si vous êtes sur un autre domaine, le propriétaire a ajouté votre iframe, non? Si oui, demandez-leur également d'ajouter dans les événements. Ils peuvent transmettre des variables et appeler des fonctions auxiliaires sur votre iframe. Donc, ils pourraient passer le bouton et vous pourriez ajouter l'événement.

+0

Nous sommes sur un domaine où nous avons installé un widget iFrame se référant à un autre domaine, donc c'est un cas de XSS, compris. Serait-il possible d'ajouter un peu de superposition (en supposant que nous connaissions la position du widget sur la page) pour suivre l'événement "onclick" et le passer à l'iframe? Malheureusement, nous ne pouvons pas demander au fournisseur de widget tiers d'ajouter quoi que ce soit à son iFrame. – philgo20

+0

Voici la chose - j'espère que non. XSS est une violation de sécurité pour une raison. Une annonce devrait-elle être capable de lire mon courrier ou de me faire faire quelque chose que je ne peux pas voir? Si le propriétaire du site refuse de coopérer, tout ce que vous faites devrait être arrêté par le navigateur. Si vous trouvez un moyen - c'est un bug de sécurité. –

0

pas fiable dans les navigateurs, non.

Cela pourrait facilement être qualifié d'exploit XSS (Cross Site Scripting) et être détecté par la majorité des navigateurs modernes.

1

La réponse est: pas possible du tout sans une coopération quelconque avec le site distant.
Cela est dû à la politique de la même origine pour votre protection.

Si vous avez une sorte de coopération, vous pouvez tirer ceci de l'utilisation de la messagerie inter-domaines (par exemple avec easyXDM).

+0

merci pour le lien easyXDM – philgo20

Questions connexes