Jump to content

Faire sauter les frames à l'affichage...


Remi

Recommended Posts

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 ?

Link to comment
Share on other 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...

Link to comment
Share on other 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+

Edited by dotweb
Link to comment
Share on other 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:

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...