2010-09-17 18 views
0

J'essaie de trouver l'élément DOM iframe ou frame pour chacune des images dans la collection frames d'une fenêtre. Le moyen le plus rapide de le faire, je pense, est d'accéder à la propriété frameElement du cadre. Cette propriété n'est disponible que pour un accès au même domaine et renvoie undefined et imprime un message d'erreur dans le journal dans le cas inter-domaine.Puis-je savoir si un accès au cadre sera inter-domaine avant de l'exécuter?

Je peux passer en revue les éléments renvoyés par document.getElementsByTagName pour trouver l'élément correct dans le cas du domaine croisé, mais je souhaite éviter d'imprimer le message "Tentative JavaScript non sécurisée" dans le journal.

Est-il possible de dire avant de l'essayer si une tentative d'accès aux propriétés va à l'encontre de la politique de sécurité inter-domaines?

Merci.

Répondre

0

Vous pouvez vérifier le domaine sur l'URL de la page d'hébergement et le cadre (propriété src). Si les domaines diffèrent, vous obtiendrez probablement une erreur.

Je dis très probablement parce que si le cadre est sur un sous-domaine, mais a spécifié document.domain pour être le même que la trame parente, alors l'accès interdomaine fonctionnera.

+0

Existe-t-il une méthode standard pour analyser la propriété src? J'ai essayé de vérifier la propriété location du cadre, mais cela a déclenché l'erreur interdomaine. – Greg

+0

@Greg: Pas aussi loin que je sache. Mais utilisez une expression rationnelle comme mentionné sur http://w3guru.blogspot.com/2009/01/how-to-get-domain-name-from-url-using.html et comparez les chaînes. –

+0

Cela n'échouera-t-il pas également si l'utilisateur suit un lien dans le cadre vers un autre site, de sorte que le contenu de src et de la trame ne correspond plus? – Greg