web-dev-qa-db-fra.com

Fermer la fenêtre popup

J'ai une fenêtre popup qui s'ouvre avec ce code:

function _openpageview(fieldid,objectid,opennew)
{
var url='/s_viewpagefield.jsp?fieldid='+fieldid+'&codedid='+objectid;

  web_window = window.open(url,'_blank', 'menubar=yes,location=no,scrollbars=yes,width=800,height=600,status=no,resizable=yes,top=0,left=0,dependent=yes,alwaysRaised=yes');
   web_window.opener = window;
   web_window.focus();


}

Comment puis-je fermer cette fenêtre contextuelle depuis l'intérieur?

window.close();
self.close();
web_window.close();

tout n'a pas fonctionné

8
Drew

Une vieille astuce ...

var daddy = window.self;
daddy.opener = window.self;
daddy.close();
19
molokoloco

Vous pouvez uniquement fermer une fenêtre à l'aide de javascript qui a été ouvert à l'aide de javascript, c'est-à-dire lors de l'ouverture de la fenêtre à l'aide de: 

window.open

puis 

window.close

marchera. Ou sinon pas.

5
koma

Pour une chose aussi simple en apparence, cela peut être une douleur royale dans les fesses! J'ai trouvé une solution qui fonctionne à merveille (class = "video-close" est évidemment particulier à ce bouton et optionnel)

 <a href="javascript:window.open('','_self').close();" class="video-close">Close this window</a>
2
Kevin Fisher

Votre variable web_window doit être hors de portée lorsque vous avez essayé de fermer la fenêtre. Ajoutez cette ligne à votre fonction _openpageview pour tester:

setTimeout(function(){web_window.close();},1000);
2
ic3b3rg

essaye ça

  if(false == web_window.closed)
  {
     web_window.close ();
  }
0
Srinivas

Dans mon cas, je devais simplement fermer ma fenêtre contextuelle et rediriger l'utilisateur vers sa page de profil lorsqu'il cliquait sur "ok" après avoir lu un message J'ai essayé avec quelques piratages, y compris setTimeout + self.close (), mais avec IE, cela fermait l'onglet entier ...

Solution: J'ai remplacé mon lien par un simple bouton d'envoi .
<button type="submit" onclick="window.location.href='profile.html';">buttonText</button>. Rien de plus.

Cela peut paraître stupide, mais je ne pensais pas à une solution aussi simple, car ma fenêtre contextuelle n’avait aucune forme.

J'espère que cela aidera certains noobs du front comme moi!

0
Balmipour