par
Ryle » 17 nov. 2006, 12:51
C'est déjà plus léger comme code

Ceci dit, tu ne m'as pas répondu sur ce que tu attends que ça fasse, ni si tu avais un message d'erreur j'avascript...
D'après ton code, on doit se trouver dans popup. Il compare les 15 premiers caractère de l'url de cette popup aux 15 premiers caractères de la page qui l'a ouverte. S'ils sont identique, elle se referme, sinon, elle ouvre une nouvelle url.
Déjà, est-ce bien le fonctionnement que tu en attends ?
Si oui, le problème vient il du fait que tu rentre toujours dans le if ? toujours dans le else ? ni dans l'un ni dans l'autre ?
dans les deux premiers cas, cela veut dire que le test est toujours vrai ou toujours faux. La fonction alert te permet de voir les valeurs que tu compares et te permettras peut être d'y voir plus clair sur le résultat du test. L'idée, c'est donc de la (ou les) placer juste avant d'utiliser les variable pour vérifier ce qu'elles contiennent :
function Redirige(){
alert("Url popup : " + window.location.href.substring(0,15));
alert("Url parent : " + opener.location.href.substring(0,15));
if(window.location.href.substring(0,15)==opener.location.href.substring(0,15))
...
Tu peux aussi en coller un peu partout pour vérifier l'exécution de ta fonction et les retirer une fois que tout fonctionne :
function Redirige() {
alert("Début de la fonction");
if (window.location.href.substring(0,15)==opener.location.href.substring(0,15)) {
alert("Exécution du if");
self.close();
}
else {
alert("Exécution du else");
window.location.href="www.monsite.fr";
}
}
Dans le dernier cas où tu n'entres ni dans le if ni dans le else, c'est que tu as une erreur, probablement parce que l'un des élément sur lequel tu travail est indéfini. Avec IE tu dois avoir un triangle jaune qui apparait dans la barre d'état, il suffit de double cliquer dessus pour voir les messages d'erreur. Sous FF/Mozilla, si tu tapes " javascript: " dans la barre d'adresse, tu obtiendras une console bien pratique pour débugger
