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é
Une vieille astuce ...
var daddy = window.self;
daddy.opener = window.self;
daddy.close();
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.
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>
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);
essaye ça
if(false == web_window.closed)
{
web_window.close ();
}
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!