2010-08-06 3 views
3

J'ouvre un popup qui se trouve sous https depuis une page web qui se trouve sous http. Lorsque j'essaie d'utiliser la commande window.opener.location (href/str/port/domain .. etc) à partir de la fenêtre contextuelle pour obtenir l'URL de la page d'ouverture, j'obtiens un 'Permission Denied'. J'ai également utilisé Firebug sur Firefox pour tester cela. Y at-il un moyen que je peux en passant cela en utilisant une autre commande ou en faisant quelque chose d'autre. Si j'ouvre l'URL d'ouverture sous https, alors je peux y accéder à partir de la fenêtre pop-up. Je devine que cela doit être d'être sur un port sécurisé par rapport à un non sécurisé. Je pensais que cela devrait être possible puisque j'essaie d'obtenir l'information d'une page non sécurisée à partir d'une page sécurisée.Utilisation de window.opener.location pour accéder à un ouvreur non sécurisé (http) à partir d'une fenêtre sécurisée (https)

Fondamentalement, j'essaye de balayer l'URL de la page d'ouvreur et vérifie s'il contient une certaine sous-chaîne, je veux exécuter une certaine fonction. Toute suggestion alternative pour y parvenir serait également appréciée.

Répondre

0

Vous voyez l'erreur en raison de la stratégie Same Origin. Lorsque deux domaines comparés, il prend en compte le protocole, le nom de domaine et le port. Dans votre cas, les protocoles sont différents donc vous obtenez l'exception "Permission denied". Vous pouvez essayer l'astuce suivante - lorsque vous ouvrez la fenêtre, attribuez l'URL du parent à window.name, qui devrait être disponible pour le javascript dans-popup. En outre, vous pouvez construire l'URL de votre popup avec le hash à la fin, par exemple: https://mydomain.com/page.html#http://mydomain.com/parent.html

Il y a couple other tricks you may perform to bypass SOP.

Questions connexes