[JS] Pb d'utilisation de confirm: opener null

Bonjour,

Je tombe sur un pb que je n'ai jamais rencontré pour le moment avec la fonction confirm de javascript.
En effet je tente de demander une confirmation à l'utilisateur, en faisant une fonction du genre :
function toto() {
var res = confirm("confirmez vous ?");
if(res==true) alert("Merci d'avoir confirmé");
else alert("tant pis");
}
Rien de bien méchant quoi !!
MAIS !
Lorsque je fais appel à confirm dans ma page alors une erreur javascript se produit et m'indique que le window.opener.document est null, indefini ou mal formé.
Or je ne touche jamais cette propriété ....

Que ce passe t'il ?
Avez vous une piste ?

6 réponses

  1. Cette fonction me semble correcte et fonctionne parfaitement chez moi. Le problème doit venir d'autre part.
    Et en essayant de créer une page avec juste cette fonction toujours le même problème ?
    1. Contributeur
      Bonjour,

      Je trouve la syntaxe de ton if particulière, peut-être pose-t-elle des problèmes en cascade ?

      Essaye :

      function toto() { 
         var res = confirm("confirmez vous ?"); 
         if(res) { 
            alert("Merci d'avoir confirmé") 
         } else { 
            alert("tant pis"); 
         } 
      } 

      Mihawk
      "Tant qu'on ne fait pas, on ne sait pas."
      1. @jojo673 : Si je place ce code sur une page vide et que je l'exécute sur le même PC, même navigateur, pas de problème.
        C'est forcement contextuel.

        @Mihawk : Cela ne vient pas du if car si je mets seulement l'appel à confirm, cela échoue quand même avec la même erreur.

        La fonction alert fonctionne normalement, et j'ai pas essayer prompt.
        Je n'utilise pas de frames et j'ai essayer de définir window.opener = self; et il me sort une autre erreur qui n'a rien à voir.

        J'ai oublié de préciser que ma fonction toto() est dans un fichier .js a part et ma page charge ce fichier (dans le <head></head>)
        1. Contributeur
          Alors montre-nous le contexte :)
        2. J'ai pas le code sous les yeux et il est compliqué de le sortir de son contexte car c'est en Https et c'est des pages jsp
        3. Information complémentaire, cette fonction (toto) est appelé lors de la validation d'un formulaire
        4. Je pense que je vais vous mettre une partie du code et les entetes Html utilisé.
          Au cas ou ce serait une histoire de DOCTYPE ou de je ne sais quoi d'autres ...
      2. Page1.jsp :
        <html> 
          <head> 
            <script type="text/javascript" src="fichierContenantFunctionToto.js">  
            </script> 
          </head> 
          <body> 
            <form name="initForm" method="post" action="./Page2.jsp"> 
              <input type="submit" value="Debut" /> 
            </form> 
          </body> 
        </html> 
        


        Page2.jsp :
        <html> 
        <head> 
          <script type="text/javascript" src="fichierContenantFunctionToto.js"></script> 
        </head> 
        <body> 
          <FORM name="ReqForm" id="ReqForm" method="post" action="./Page3.jsp" onSubmit="return toto()"> 
            <input type="submit" value="Fin" /> 
          </form> 
        </body> 
        </html> 
        


        Dans fichierContenantFunctionToto.js :
        function toto() {  
           var res = confirm("confirmez vous ?");  
           if(res) {  
              alert("Merci d'avoir confirmé")  
           } else {  
              alert("tant pis");  
           }  
        return res ; 
        }  
        


        Ces pages sont accessibles seulement en HTTPS
        1. Si j'exécute ce code en local avec des pages Html, il fonctionne très bien ...
          Je ne vois pas d'où pourrai venir l'erreur .... :(
          1. Je vais essayer de positionner ces pages sur mon serveur pour pouvoir test ces source en HTTPS. cela permettrait de savoir si le HTTPS est la source de mes problèmes