2009-12-16 11 views

Répondre

3

il n'y a pas de bonne façon, car il n'y a aucun moyen de vérifier qu'une valeur dans le cadre parent existe même sans lancer une exception.

Je viens d'essayer quelques choses, y compris: ce

var parentURL = window.parent && window.parent.location && window.parent.location.href; 

et peu importe quoi, il va lancer une exception en raison de la règle d'origine. cependant, vous pouvez vérifier simplement si vous êtes dans un iframe

function checkInFrame(arg){ arg = arg || window; return arg.parent == window; } 

mais à ma connaissance, vous devez utiliser un bloc try { ... } catch(...) { ... } (qui est ce qu'il est là pour).

+0

Différents navigateurs agissent différemment. Par exemple, Chrome ne lance pas d'exception et renvoie simplement undefined pour location.href de la fenêtre restreinte – thorn

+0

bon à savoir. Malheureusement, à moins que vous n'écriviez pour les utilisateurs de Chrome, vous devrez utiliser un bloc try/catch :( –