Obtenir l'URL de l'image supérieure
À l'intérieur d'un facebook application, j'ai besoin de vérifier ce qui est la partie supérieure du cadre (la fenêtre principale), URL, et d'afficher le contenu en conséquence.
J'ai essayé d'utiliser les éléments suivants:
if (top.location.toString().toLowerCase().indexOf("facebook.com") <0) { ... }
Qui fonctionne bien si la page n'est pas à l'intérieur d'une iframe, mais lorsque la page est chargée dans un iframe (comme il le fait lorsqu'il est utilisé comme facebook application), le code génère
"Uncaught TypeError: Propriété
'toString' de l'objet # n'est pas un
la fonction".
Est il possible que je peux corriger ce code (avec compatibilité inter-navigateur - peut-être avec jQuery)?
Merci!
Joel
Vous ne pouvez pas obtenir le haut lieu, mais vous pouvez au parent en utilisant le document.référent de la chaîne. Voir la réponse ci-dessous.
OriginalL'auteur Joel | 2011-02-04
Vous devez vous connecter pour publier un commentaire.
Le problème que vous rencontrez que vous n'êtes pas autorisé à accéder à
top.location
à travers des documents dans différents domaines.C'est une fonctionnalité de sécurité intégrée dans les navigateurs.
Lire sur XSS et pourquoi les précautions de sécurité sont en place 🙂
Vous pouvez également en apprendre beaucoup en lisant la même la politique de l'origine
Si vous n'êtes pas dans une iframe
window.top === window
retournera trueFonctionne comme un charme, thnx 🙂
OriginalL'auteur Martin Jespersen
Il est vrai que l'origine de la croix préoccupations qui vont vous empêcher d'accéder à cette fenêtre du haut lieu. Toutefois, si vous voulez juste la fenêtre parent de l'emplacement de l'iframe, vous pouvez obtenir via le
document.referrer
chaîne.Au sein de votre iframe vous attraper l'url:
var parentURL = document.referrer
https://developer.mozilla.org/en-US/docs/Web/API/document.referrer
J'ai utilisé avec succès dans mon iframe apps. Aussi, soyez conscient que si vous naviguez à l'intérieur de votre iframe le référent va changer.
Nicolas Zakas a une écriture-up sur son blog:
http://www.nczonline.net/blog/2013/04/16/getting-the-url-of-an-iframes-parent/
OriginalL'auteur mcanfield
Avec Martin Jespersen conseillé de fixer, j'ai pu vérifier l'adresse dans un iFrame et standart adresse:
OriginalL'auteur Nick Bristol
Cela pourrait fonctionner:
...tant que vous n'avez pas naviguer à l'intérieur du cadre.
Mais ce n'est pas vraiment une bonne solution ^^
OriginalL'auteur Dr.Molle
Avez-vous essayé ceci:
OriginalL'auteur Yoram de Langen