Page 1 sur 1

redirection ne fonctionne pas

Posté : 16 nov. 2006, 17:48
par coelinho
après quelques recherches sur differents sites, j'ai pondu ça :

Code : Tout sélectionner

function Redirige() { if (window.location.href.substring(0,15)==opener.location.href.substring(0,15)) self.close(); else if (window.location.href.substring(0,15)!=opener.location.href.substring(0,15)) window.location.href="www.monsite.fr"; };
avec bien sur le bouton qui appelle ma fonction mais ca marche pas

Posté : 17 nov. 2006, 10:08
par Ryle
C'est normal, ça n'a pas de jambes... ;)

Qu'est ce qui ne fonctionne pas ? qu'est ce que ça devrait faire ?
est-ce que tu as un message d'erreur ? as-tu testé les valeurs que tu compares ? tu peux pour cela coller une alert et afficher tes valeurs dans ta fonction :

Code : Tout sélectionner

alert (window.location.href.substring(0,15) +" / "+ opener.location.href.substring(0,15))
A noter que le "else" signifie "sinon", il est donc inutile de tester la condition opposée à celle du if(), puisqu'on est déjà dans le cas contraire :)

Posté : 17 nov. 2006, 10:27
par Cyrano
Modération : coelinho, les règles du forum ne sont pas optionnelles. Il y est spécifié entre autres chose : "mettez un titre explicite".

Pour cette fois, j'ai modifié moi-même, la prochaine fois, tu risques tout simplement la suppression pure et simple du message.

Merci de ton attention.

merci

Posté : 17 nov. 2006, 12:24
par coelinho
merci ryle je vais essayer ca tout de suite

merci cyrano mais pas la peine de t'enerver je recommencerais plus
promis :agenouille:

Posté : 17 nov. 2006, 12:34
par coelinho
j'ai changé ce que tu m'as dit ca donne ca :

Code : Tout sélectionner

<script language="JavaScript"> function Redirige(){ if(window.location.href.substring(0,15)==opener.location.href.substring(0,15)) self.close(); else window.location.href="http://www.monsite.fr"; } </script>
et le bouton l'appel comme ca :

Code : Tout sélectionner

<input type="button" name="b_close" value="Fermer" onClick="Redirige();">
je dois la placer ou l'alerte??
(parce que comme ca ca fonctionne pas!!!) ](*,)
j'espere que c'est plus sans jambes maintenant (au moins 1 :roll: )

hééé

Posté : 17 nov. 2006, 12:43
par coelinho
hééé pourquoi ma reponse a été supriméééé :shock:
c pas sympa...
ryle ou je dois mettre l'alert?

oups bah nan elle est pas suprimé

Posté : 17 nov. 2006, 12:43
par coelinho
:lol: :lol: :lol:

Re: merci

Posté : 17 nov. 2006, 12:46
par Cyrano
...pas la peine de t'enerver...
Je ne suis pas énervé du tout, je suis même d'un calme Olympien. Peut-être simplement agacé par le fait que pour beaucoup, les solutions à leurs problèmes seraient plus simples avec un petit minimum de cohérence.

Considère en effet la question avec une vision un peu plus globale. Lorsque tu as un problème quel qu'il soit, tu effectues une recherche sur les forums. As-tu songé au fonctionnement de cette recherche ? T'imagines-tu qu'il y a à l'autre bout, coté serveur, une horde de types qui lisent les questions et cherchent les sujets correspondants ? Bien sur que non, c'est un moteur de recherche qui fait ça, et ce moteur, c'est une machine. Elle n'analyse rien du tout : elle prend la requête et fouille pour trouver des correspondances.

Ces correspondances devront si possible être pertinentes. La recherche sera faite sur le titre et/ou le contenu du sujet. Si tout le monde mettait comme titre "mon script ne marche pas", tu aurais presque autant de réponses qu'il y a de messages dans le forum : actuellement autour de 150000. En clair, la recherche ne servirait strictement à rien.

Si au contraire tu prends soin de mettre un titre explicite et qui décrit bien le problème général, on va pouvoir cerner les recherches ultérieurement.

Le forum, c'est un lieu de partage de savoir. Chacun a sa part de responsabilité. Il ne faut pas seulement songer à ce qu'on peut t'apporter, il faut également penser à ce que tu vas apporter en échange. Si ton problème trouve sa résolution ici, ta contribution, c'est une question que d'autres plus tard pourront utiliser à leur tour. Mais ils ne pourront en bénéficier que si tu as fait ta part de travail en mettant un titre clair.

Voilà, bonne continuation.

ok ok

Posté : 17 nov. 2006, 12:50
par coelinho
:oops: :oops: :oops: je ferais mieux la prochaine fois
javais dis ca pour te taquiner c'est tout mais c'est vrai que tu as raison j'avou :oops: :oops: :oops:
mais j'suis qu"un petit embryon faut me pardonner

Posté : 17 nov. 2006, 12:51
par Ryle
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 :)

Posté : 17 nov. 2006, 13:29
par coelinho
ok je vais m'expliquer sur mes besoins.

j'ai un site qui est referencé sur google.
si google ou autres referencient un une page que j'utilise comme pop up
le bouton fermé doit rediriger sur mon site
si c'est mon site qui ouvre la page le bouton fermé ferme :wink:

jai mis l'alert et ca me renvoi l'adresse de mon pop up

je vais essayer les autres merci

Posté : 17 nov. 2006, 14:51
par coelinho
j'ai mis les autres alerts et ca me renvoi rien du tou :roll:
c'est moi qui suis nul ou quoi!!!!

Posté : 24 nov. 2006, 19:03
par coelinho
en fait cet methode n'est pas approprié a ce que je veux faire le mieux

Code : Tout sélectionner

<script language="JavaScript" type="text/javascript"> function Redirige(){ if(window.history.length>=1) { window.location.href="http://www.monsite.fr"; } else { self.close(); } } </script>
c'est mieu avec history ca marche très bien comme ca
Merci tout le monde