Est-il possible de fermer la fenêtre parent de l'enfant (Javascript)?
Je suis en train de fermer la fenêtre parent de l'enfant de la fenêtre à l'aide de javascript, mais sa ne va pas au travail.
S'il vous plaît partagez m'code si vous en avez.
Mes parents html :
<script>
var winr;
var selfw;
function openAn(){
selfw=self.window;
winr=window.open("shell.htm","");
}
function justClose(){
//setTimeout("closeAfterMin()",2000);
winr.close();
}
function closeAfterMin(){
alert("sd");
selfw.close();
}
</script>
<body onload='openAn()' >
<h1>New Web Project Page</h1>
</body>
Mon Enfant html :
<script>
function closeAll(){
window.parent.close();
}
</script>
<body>
<div onclick="closeAll();" onunload="window.opener.close();">
Close Parent and self
</div>
</body>
Merci de m'aider..
Utilisez-vous
non, je n'ai pas utilisé l'un iframe à l'intérieur d'une fenêtre parent
Pouvez-vous inclure le code que vous utilisez et/ou un JSFiddle? Les solutions proposées semblent déjà comme ils doivent travailler, mais ils ne font pas de travail pour vous.
ajout d'un code ....
JavaScript ne peut fermer les fenêtres qu'il ouvre. Depuis votre fenêtre parent a probablement pas été ouvert en JavaScript, il ne peut pas être fermé par du JavaScript.
iframe
à l'intérieur d'une fenêtre parent? Et que vous voulez fermer la fenêtre parent à l'intérieur de la iframe
?non, je n'ai pas utilisé l'un iframe à l'intérieur d'une fenêtre parent
Pouvez-vous inclure le code que vous utilisez et/ou un JSFiddle? Les solutions proposées semblent déjà comme ils doivent travailler, mais ils ne font pas de travail pour vous.
ajout d'un code ....
JavaScript ne peut fermer les fenêtres qu'il ouvre. Depuis votre fenêtre parent a probablement pas été ouvert en JavaScript, il ne peut pas être fermé par du JavaScript.
OriginalL'auteur Tushar Ahirrao | 2011-11-14
Vous devez vous connecter pour publier un commentaire.
De de la fenêtre.close() MDN:
Vous pouvez fermer la fenêtre enfant de la mère, mais pas l'inverse.
Oui, vous pouvez. Voir ma réponse, s'il vous plaît.
Si vous utilisez Firefox, vous pouvez désactiver cette restriction simplement dans votre propre navigateur. Visite
about:config
, puis définissezdom.allow_scripts_to_close_windows
àtrue
. Maintenant, dans votre navigateur,window.close()
fonctionnera dans toutes les fenêtres.OriginalL'auteur Dennis
appel de la fonction ci-dessus avec un délai d'attente de l'enfant page. Il fonctionne sous IE, et parfois en Chrome aussi.
setTimeout(closeW, 500);
OriginalL'auteur Reny Mathew
Si vous entendez un enfant-image à l'intérieur d'un parent-image, puis utilisez
Si vous voulez dire une fenêtre ouverte (avec fenêtre.open()), puis essayez ce
OriginalL'auteur Willem Mulder
Il y a une solution qui fonctionne (dans Chrome, au moins):
Voici le code de la page parent:
Voici le code pour enfant page:
Viens de l'essayer!
Je l'ai juste essayé sur Chrome et il ferme la fenêtre parent sans demander quoi que ce soit (bien que, je ne sais pas pourquoi, vous devez cliquer deux fois sur le bouton). Mais vous avez raison: il ne fonctionne pas dans Firefox et IE.
Il ferme la fenêtre enfant. Il faut deux clics parce que la première fois qu'il essaie de fermer le parent (à défaut en raison de mesures de sécurité) et affecte
self
àwindow.opener
. La deuxième fois qu'il essaie de fermerself
qui est valable selon le MDN, de la documentation que j'ai cité dans ma réponse.OK, à droite. Mais nous pouvons modifier ce code pour le faire fonctionner sur le premier clic, je suppose. Donc, il y a une solution dans Chrome, mais pas dans les autres navigateurs.
SI cela fonctionne, que c'est probablement un bug, et que vous ne pouvez pas vous attendre à travailler dans une future version.
OriginalL'auteur Rodolphe
la fenêtre parent est la vôtre ? vous avez le contrôle sur elle ?
essayez-le maintenant - ive édité
j'ai essayé de nombreuses façons..mais toujours pas de travail
j'ai changé pour
opener
avez-vous remarqué ?OriginalL'auteur Royi Namir
Mise À Jour De Réponse
Avoir un enfant près d'un parent est mauvais couplage. Ma réponse originale à cette question seulement a cause de ma fenêtre parent a lui-même ouvert via javascript par un grand-parent de la fenêtre!
La manière correcte de le faire, pour éviter uneccessary de couplage, est d'avoir la fenêtre parent sondage de l'enfant, à l'aide de
setInterval
, pour l'événement qui déclenche la fermeture. Dans cet exemple, cet événement est l'enfant de la fermeture de fenêtre. J'ai effectivement l'utiliser pour remplacer une partie de la page avec ajax plutôt que de fermer la fenêtre, mais le principe est le même...Réponse Originale À Cette Question
Il est en fait assez simple de contourner cette.
Créer une page qui ne fait rien mais proches lui-même, par exemple
close.html
:Puis dans la fenêtre enfant, de rediriger l'ouvreur de la page qui se ferme de lui-même:
J'ai utilisé cette méthode sur un système intranet pour le travail.
Ne fonctionne pas pour moi
Je vais vérifier cela dans la soirée..
OriginalL'auteur AntonChanning
Vous pourriez vouloir essayer cette
OriginalL'auteur Sajin MS