Détecter la non présence d’une frame et faire une redirection


J’étrenne une nouvelle rubrique, mon aide mémoire en ligne.

Que voulez-vous, je me fais vieux, alors cette rubrique sera mon aide mémoire en ligne, un blog, ça sert à tout.

Donc aujourd’hui, un petit script tout bête dont j’avais besoin pour un projet client. Certaines pages de son site n’apparaissent que via des liens thickbox et il faut absolument qu’elles soient inaccessibles en direct autrement, enfin si, mais pas par l’utilisateur final.

La solution la plus simple était donc de détecter si la page n’est pas afichée dans une frame (ou iframe) et dans ce cas, de rediriger le visiteur automatiquement vers la page « parent ».

Voici le script :

<script type= »text/javascript »>
if (top.frames.length==’0′)
{
window.location.replace(« url-de-redirection »);

}
</script>

Parce que figurez vous que si ce script était très utilisé à l’époque de l’usage massif des frames, maintenant, c’est plus chaud à trouver quand on n’est pas un pro du javascript.


13 réponses à “Détecter la non présence d’une frame et faire une redirection”

  1. Les cadres, c’est le mal. Niveau accessibilité, imposer cadre + JS à un visiteur, tu ne trouves pas que c’est beaucoup ?

    Et je rejoins Arnaud, le permalien, pour bookmarquer ou pour faire tourner, on n’a pas trouvé mieux. :)

  2. Ronchon, tu fais un aide-mémoire pour toi, c’est bien. Mais ton script va être trouvé et utilisé par des gens qui ne comprendront peut-être pas la nuisance qu’ils imposent à leurs visiteurs. Il était de notre devoir de combattre de faire régner la lumière. La Vérité devait se faire jour.

    Tu es un homme trop intelligent pour ne pas comprendre cela. :)

  3. ça pas bien !
    Je connais un site qui fait ça et impossible de mettre les pages dans les favoris sans désactiver le javascript. C’est très désagréable.

    :)

  4. Sérieusement, vous lisez parfois les articles ?
    J’en ai besoin pour un cas particulier, uniquement et pour des pages qui n’ont pas vocation à être bookmarkées.

    Et voilà, la révolte des commentateurs.

  5. Excellents les commentaires ;-)

    Je suis un peu stupide, mais pouvez-vous m’expliquer comment un tel script peut empêcher la création d’un bookmark ?

    Bon à ma décharge, bien qu’internaute depuis fort longtemps (octobre 1996 tiens, ça fait 12 ans ce mois-ci) je n’ai jamais utilisé de systèmes de bookmarks en ligne… C’est peut-être à cela que vous faites allusion !

    Pour le reste, j’ai étudié ce petit bout de script de mon côté pour éviter… le vol d’images depuis Google Images ! Pas encore mis en place car il faut que je détecte s’il y a « déframage » pour virer lors du second affichage les marqueurs de trafic (Xiti, Analytics…) histoire de ne pas fausser les stats ;-)

    Rien de plus pénible que de voir ses photos pompées joyeusement depuis Google Images !

  6. arnaud : il n’est pas rouge ce site, il est vieux rose. Rahlalalala ces boursicoteurs.

    JulienA : tu as de la chance, je ne suis pas là demain matin.

    Cédric : en fait, comme c’est à la base un script fait pour replacer une page normalement visible dans une frame justement dans ça frame, la redirection se fait automatiquement au chargement de la page, donc le temps que tu veuille bookmarquer, hop tu es rendu sur la page de Frame, et non plus sur la page exact que tu voulais bookmarquer.

  7. Ah oui pardon, j’avais compris l’inverse (j’avoue que je n’avais pas trop regardé le code) ;-)

    Et du coup je comprends beaucoup mieux certains commentaires !