Page 1 sur 1

JS - Window.onMessage

Posté : sam. 6 juin 2015 00:38
par TsuShine
Bonjour,

J'ai un site structuré de cette façon : http://img15.hostingpics.net/pics/653001Sanstitre.png.
J'aimerais que l'utilisateur soit obliger d'aller sur le fichier index.php pour pourvoir voir le contenue du fichier accueil.php (qui se trouve dans l'iframe). Malheureusement, si l'utilisateur connait le nom du fichier "accueil.php", il pourra y accéder via l'URL sans passer par l'index.php

Donc j'ai réussi à faire communiquer mon index.php avec mon iframe en Javascript.
Index.php (Celui-ci envoie) :
Code : Tout sélectionner
document.getElementById("iframe").contentWindow.postMessage("test", "http://localhost");
Accueil .php (Celui-ci reçoit) :
Code : Tout sélectionner
window.onmessage = function(event) {
	if(event.origin !== "http://localhost") { return; }
	alert(event.data);
};
Si mon index.php envoie le message, mon iframe le reçoit et j'ai l'alert qui s'affiche. Donc je sais que l’utilisateur est bien passé par l'index.php pour voir l'iframe (jusqu’à la, normal).
Sauf j'aimerais que si l'utilisateur ne passe pas par index.php (donc aucun message reçu et donc aucune alert), l'iframe le sait quand même et redirige l'utilisateur sur index.php.

La function window.onmessage s'exécute n'importe quand donc je ne peux pas l'exécuter moi même.

Cordialement,

Re: JS - Window.onMessage

Posté : sam. 6 juin 2015 14:17
par Invité
Bonjour,

Beaucoup plus simple : regarder si l'iframe a un parent.
Pour ceux que ça intéresse, je vous mets le code :
Code : Tout sélectionner
window.onload = function() {
	var isInIFrame = (window.location != window.parent.location);
	if(isInIFrame==true){
		alert('oui');
	}
	else {
		alert('non');
	}
}

Merci quand même.