Aller au contenu

Faire sauter les frames à l'affichage...


Remi

Sujets conseillés

Bonjour,

Pour éviter qu'un site affiche notre site dans une de ses frames, le code classique est

if(top!= self) top.location.href = self.location.href;

Je cherchais à n'autoriser les frames que lorsqu'il s'agit de son propre domaine (sinon l'interface d'aministration de Wordpress par exemple devient inutilisable à cause de la preview affichée dans une frame).

Le problème est que l'on ne peut faire aucun test sur top.location.href (permission refusée en lecture) pour savoir quel est le nom du site sur le top.

Voilà donc ce que j'ai mis en place :

window.onerror=function(){top.location.href = self.location.href;}
if(top!= self && top.location.href.substring(7,26)!="www.mondomaine.com/") top.location.href = self.location.href;
window.onerror=function(){}

Je trouve cela moyen...

Auriez-vous trouvé quelque chose de plus élégant ?

Lien vers le commentaire
Partager sur d’autres sites

Merci pour ta réponse, mais c'est pareil avec host/hostname qu'avec href : "permission refusée".

En fait, le problème revient à :

Comment, en JS, connaitre le domaine de la frame Top ?

Ma solution ne me plaît pas trop à cause du substring (7,...) pour faire sauter le "http://" (s'il y a un navigateur qui renvoie la variable sans le http, ça va boucler...) mais je peux facilement résoudre cela avec un test supplémentaire ou une regex

Mais surtout, le "window.error=... " marche sous IE/FF mais (apparemment) pas sous Chrome ni sous Opera...

Lien vers le commentaire
Partager sur d’autres sites

Hello !

Tu devrais pouvoir faire ce que tu veux avec cela, sauf en cas de mauvaise compréhension ton problème.

<script type="text/javascript">

if(top.document.location.host != document.location.host)
top.document.location.href=document.location.href;

</script>

a+

Modifié par dotweb
Lien vers le commentaire
Partager sur d’autres sites

Merci,

mais mon problème est de faire sauter les frames *sauf* quand il s'agit de mon propre domaine (pb : le panel d'administration d'un blog Wordpress utilise des frames)...

... et top.document.location.host n'est pas, lui non plus, accessible en lecture... :blush:

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...