[javascript] pb settimeout

pb settimeout [javascript] - HTML/CSS - Programmation

Marsh Posté le 04-12-2006 à 12:53:37    

Bonjour  
pourriez vous m'indiquer pourquoi mon code ne fonctionne pas
j'ai fais des recherches mais je ne trouve pas pourquoi
 

Code :
  1. <html>
  2.         <head>
  3.             <script language="javascript">
  4.                 <!--
  5.    function delai() {
  6.    setTimeout("ouvre()",3000)
  7.    }
  8.                 function ouvre()
  9.                 {
  10.      window.open("http://www.microsoft.fr", "Autrepage", "toolbar=1, location=1, directories=1,
  11.      status=1, scrollbars=1, resizable=1, copyhistory=1" );
  12.                 }
  13.                //-->
  14.            </script>
  15.        </head>
  16.        <body>
  17.            <a href="http://www.google.fr" onclick='delai();'> le nom du lien </a>
  18.        </body>
  19.    </html>


 
Merci beaucoup


---------------
I am kApPa and I approve this message.
Reply

Marsh Posté le 04-12-2006 à 12:53:37   

Reply

Marsh Posté le 04-12-2006 à 13:32:52    

Code :
  1. function ouvre(){
  2.       window.open("http://www.microsoft.fr", "Autrepage", " toolbar=1, location=1, directories=1, status=1, scrollbars=1, resizable=1, copyhistory=1" );
  3.       return false;
  4. }


et

Code :
  1. <a href="http://www.google.fr" onclick='return delai();'> le nom du lien </a>


maintenant l'interet de faire un lien vers google qui redirige au bout de 3 secondes chez crosoft [:w3c compliant]

Reply

Marsh Posté le 04-12-2006 à 17:28:57    

kappa a écrit :

Les liens sont pour le test
 
ton script ne marche pas  
 
Ce que je veux faire :
 
quand on clique sur le lien, au bout de 3 secondes une autre fenetre  
daide s'ouvre  
Ce qui fait la page google d'ouverte + au bout de 3 sec la page microsoft


 
Petite question idiote : ta page "Autrepage" existe-t-elle ? Je suppose que tu nous écris "Autrepage" comme ça pour le fun mais qu'en fait c'est "_blank" ?

Reply

Marsh Posté le 04-12-2006 à 17:36:48    

C'est pas un peu relou, une page qui s'ouvre bizarrement de nulle part au bout de 3 secondes :??:

Reply

Marsh Posté le 04-12-2006 à 17:37:57    

autre ou blank on s'en moque c'est juste un nom ...
Mais m'a planté le return false va dans delai et pas ouvre:

Code :
  1. function delai() {
  2.   setTimeout("ouvre()",3000);
  3.   return false;
  4. }


Voila pourquoi le code marchait pas...

 

Par contre ce que tu demandes s'pas possible !!!
Au moment ou tu cliques, tu changes de page et le "popup" que tu voudrais voir executé est oublié!


Message édité par anapajari le 04-12-2006 à 17:38:29
Reply

Marsh Posté le 04-12-2006 à 18:42:12    

Je vois bien une solution mais il faudrait que ta fenêtre d'aide soit déjà ouverte et tout le temps ouverte... Est-ce le cas?
edit: mais pourquoi tu mets pas directement l'aide dans la bonne page? Avec un système de div qui se cache/apparait, enfin un truc dans le genre?


Message édité par anapajari le 04-12-2006 à 18:42:54
Reply

Marsh Posté le 05-12-2006 à 08:29:01    

kappa a écrit :

1 - Ce n'est aps pour moi


ça donne pas le droit de faire nawak hein :o

kappa a écrit :

2 - pour l'effet visuel on voit mieux une fenetre qui s'ouvre qu'un div qui apparait


Pas d'accord, d'autant que maintenant les navigateurs (FF et IE7) "bloquent" ce genre de pop-ups

kappa a écrit :

2- non la fenetre d'aide ne restera pas ouverte
propose ta solution elle est peut etre adaptable


non, puisque l'astuce consistait à placer la fonction delai dans le pop-up et pas dans le opener... Mais si elle est fermée ça marche pas :D

Reply

Marsh Posté le 05-12-2006 à 13:36:31    

kappa a écrit :

Tu veux FF bloques  les popup  
mais que celles qui s'ouvrent auomatiquement
celle qui s'ouvre quand on clique sur un lien ne sont pas bloques


negativ sir!!!
En l'occurence ton popup ne s'ouvre pas sur un lien...
Le click en question appele la fonction delai, qui elle ouvre un popup 3 secondes plus tard. Le-dit popup sera bloqué par FF.
 

Reply

Marsh Posté le 06-12-2006 à 08:41:43    

non non non ... [:pingouino]
Le time out marche très bien mais pas comme tu voudrais!
 
Par contre j'ai réfléchi à une autre solution, ta fenêtre d'aide il faut que ça  soit la page2 qui l'ouvre pour que tu obtiennes l'effet désiré.
Donc dans la lien de page 1 vers page 2 tu rajoutes un argument, et en fonction dans la page 2 tu executes ou non une fonction js.
Bon evidement si tu n'as pas la main sur la page2 ça peut pas marcher non plus!

Reply

Marsh Posté le 06-12-2006 à 19:08:38    

the solution envisagée en gros:

Code :
  1. var helpWindow;
  2. ...
  3. /*** chaque fois que tu faisais un window.open tu fais ***/
  4. if ( typeof(helpWindow) = 'window'){
  5.   helpWindow = window.open (...);
  6. ...
  7. /*** chaque fois que tu veux changer l'adresse de la fenetre d'aide ***/
  8. hepWindow.chgURL('...url...', 3);


et dans toutes les pages appelés par la fenetre aide tu mets un lien sur un fichier js qui contient la fonction chgURL dans le genre:

Code :
  1. function chgURL(url, delai){
  2.   setTimeout("window.location='"+url+"'",delai*1000)
  3. }


 
Et pour ton autre problème effectivement un coup de getElementsByTagName:

Code :
  1. var aNodes = document.getElementsByTagName('a');
  2. for (var i = 0; i < aNodes.length; i++){
  3.   aNodes[i].onclick = function (e) {
  4.   /*** ce que tu veux que ça fasse ***/
  5.   } 
  6. }

Reply

Marsh Posté le 06-12-2006 à 19:08:38   

Reply

Marsh Posté le 08-12-2006 à 08:45:54    

s'quoi l'erreur ?

Reply

Marsh Posté le 08-12-2006 à 13:17:19    

manque return false

Reply

Marsh Posté le 09-12-2006 à 11:16:14    

Et le window.onload tu te le mets dans le cul

Reply

Marsh Posté le 10-12-2006 à 21:37:48    

colle tout le code de ta page putain :fou:

Reply

Marsh Posté le 12-12-2006 à 20:28:27    

Code :
  1. function salut(){
  2. var aNodes = document.getElementsByTagName('a');
  3. for (var i = 0; i < aNodes.length; i++){
  4.  aNodes[i].onclick = function (e) {
  5.   // On place la donnée du cookie dans une variable
  6.   var deja = lire_cookie("bibliopopjour" );
  7.   // Si elle n'existe pas (le cookie est absent ou expiré)
  8.   if (deja == null) {
  9.    window.open("http://www.google.fr", "Autrepage", "toolbar=1, location=1, directories=1, status=1, scrollbars=1, resizable=1, copyhistory=1" );
  10.    // Et on place le cookie
  11.    enregistrer(1);
  12.   }
  13.   return false;
  14.  } 
  15. }
  16. }


window.onload=salut OU <body onload="salut()">

 

fait attention putain

 

et je vois pas ce que foutais le window.onload=this :/
en plus si tu indentais correctement ton code et que tu faisais plus attention tu aurais vu que le return false n'est pas dans le .onclick=function() {} mais en dehors

 

ci dessus la version corrigée


Message édité par gatsu35 le 12-12-2006 à 20:29:09
Reply

Marsh Posté le 12-12-2006 à 20:44:16    

Postes ton code, je suis sûr que t'as encore oublié un truc :D

Reply

Marsh Posté le 12-12-2006 à 21:32:19    

ouais ben dis nous ce qui n'allait pas
(entre temps j'ai passé meme pas 1 min a remanier ton code et le poster) donc j'ai pas testé hein)
 
et puis payes toi firefox et firebug merde, ca coute 1 telechargement :/

Reply

Marsh Posté le 16-12-2006 à 15:08:01    

va dans firefox avec firebug et dis nous ce que tu as comme erreur bondieu

Reply

Marsh Posté le 18-12-2006 à 09:36:46    

vire le return false

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed