Wie kann ich ein Browserfenster schließen, ohne die Eingabeaufforderung Möchten Sie dieses Fenster schließen ?
Die Eingabeaufforderung tritt auf, wenn ich die window.close();
Funktion verwende.
Wie kann ich ein Browserfenster schließen, ohne die Eingabeaufforderung Möchten Sie dieses Fenster schließen ?
Die Eingabeaufforderung tritt auf, wenn ich die window.close();
Funktion verwende.
Antworten:
window.open('', '_self', ''); window.close();
Das funktioniert bei mir.
showModalDialog
? Es funktioniert nicht auf IE10
Skripte dürfen kein Fenster schließen, das ein Benutzer geöffnet hat. Dies wird als Sicherheitsrisiko angesehen. Obwohl dies in keinem Standard enthalten ist, befolgen alle Browser-Anbieter dies ( Mozilla-Dokumente ). Wenn dies in einigen Browsern passiert, handelt es sich um einen Sicherheitsfehler, der (im Idealfall) sehr schnell behoben wird.
Keiner der Hacks in den Antworten auf diese Frage funktioniert mehr, und wenn sich jemand einen anderen schmutzigen Hack einfallen lässt, funktioniert er schließlich auch nicht mehr.
Ich schlage vor, Sie verschwenden keine Energie, um dies zu bekämpfen, und nehmen die Methode an, die Ihnen der Browser so hilfreich bietet - fragen Sie den Benutzer, bevor Sie scheinbar seine Seite zum Absturz bringen.
Mein Freund ... es gibt einen Weg, aber "Hack" beginnt nicht, ihn zu beschreiben. Sie müssen grundsätzlich einen Fehler in IE 6 & 7 ausnutzen.
Funktioniert jedes Mal!
Anstatt anzurufen window.close()
, leiten Sie zu einer anderen Seite weiter.
Eröffnungsseite:
alert("No whammies!");
window.open("closer.htm", '_self');
Auf eine andere Seite umleiten. Dies täuscht den IE vor, dass Sie den Browser auf dieser Seite schließen können.
Abschlussseite:
<script type="text/javascript">
window.close();
</script>
Genial, oder?!
Hier ist die Javascript-Funktion, mit der ich den Browser ohne Eingabeaufforderung oder Warnung schließe. Sie kann auch über Flash aufgerufen werden. Es sollte in einer HTML-Datei sein.
function closeWindows() {
var browserName = navigator.appName;
var browserVer = parseInt(navigator.appVersion);
//alert(browserName + " : "+browserVer);
//document.getElementById("flashContent").innerHTML = "<br> <font face='Arial' color='blue' size='2'><b> You have been logged out of the Game. Please Close Your Browser Window.</b></font>";
if(browserName == "Microsoft Internet Explorer"){
var ie7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
if (ie7)
{
//This method is required to close a window without any prompt for IE7 & greater versions.
window.open('','_parent','');
window.close();
}
else
{
//This method is required to close a window without any prompt for IE6
this.focus();
self.opener = this;
self.close();
}
}else{
//For NON-IE Browsers except Firefox which doesnt support Auto Close
try{
this.focus();
self.opener = this;
self.close();
}
catch(e){
}
try{
window.open('','_self','');
window.close();
}
catch(e){
}
}
}
showModalDialog
. Ein closeWindows
, Es öffnet sich ein neues Fenster (dieselbe Seite), während das vorherige noch geöffnet ist.
Im Body-Tag:
<body onload="window.open('', '_self', '');">
So schließen Sie das Fenster:
<a href="javascript:window.close();">
Getestet auf Safari 4.0.5, FF für Mac 3.6, IE 8.0 und FF für Windows 3.5
Dies funktioniert in Chrome 26, Internet Explorer 9 und Safari 5.1.7 ( ohne die Verwendung einer Hilfeseite , ala Nicks Antwort):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
Die Verschachtelung window.open
besteht darin, dass der IE die Eingabeaufforderung " Möchten Sie dieses Fenster schließen" nicht anzeigt .
Leider ist es nicht möglich, Firefox dazu zu bringen, das Fenster zu schließen.
Aus Sicherheitsgründen kann ein Fenster in JavaScript nur geschlossen werden, wenn es von JavaScript geöffnet wurde. Um das Fenster zu schließen, müssen Sie ein neues Fenster mit _self
dem Ziel öffnen , das Ihr aktuelles Fenster überschreibt, und dieses dann schließen (was Sie tun können, seit es über JavaScript geöffnet wurde).
window.open('', '_self', '');
window.close();
Von hier aus :
<a href="javascript:window.opener='x';window.close();">Close</a>
Sie müssen sich window.opener
auf etwas einstellen , sonst beschwert es sich.
window.open('', '_self', '').close();
Entschuldigung, hier etwas spät, aber ich habe die Lösung gefunden, zumindest für meinen Fall. Getestet auf Safari 11.0.3 und Google Chrome 64.0.3282.167
Aufgrund der Sicherheitsverbesserungen im IE können Sie ein Fenster nur schließen, wenn es von einem Skript geöffnet wird. Der Weg dahin besteht darin, den Browser glauben zu lassen, dass diese Seite mit einem Skript geöffnet wird, und dann das Fenster zu schließen. Unten ist die Implementierung.
Versuchen Sie dies, es funktioniert wie ein Zauber!
Javascript aktuelles Fenster ohne Aufforderung IE schließen
<script type="text/javascript">
function closeWP() {
var Browser = navigator.appName;
var indexB = Browser.indexOf('Explorer');
if (indexB > 0) {
var indexV = navigator.userAgent.indexOf('MSIE') + 5;
var Version = navigator.userAgent.substring(indexV, indexV + 1);
if (Version >= 7) {
window.open('', '_self', '');
window.close();
}
else if (Version == 6) {
window.opener = null;
window.close();
}
else {
window.opener = '';
window.close();
}
}
else {
window.close();
}
}
</script>
Erstellen Sie eine JavaScript-Funktion
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
Schreiben Sie nun diesen Code und rufen Sie die obige JavaScript-Funktion auf
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
Oder einfach:
<a href="" onclick="closeme();">close</a>
Das wird funktionieren :
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
Fügen Sie den folgenden Code in die ASPX ein.
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
Fügen Sie den folgenden Code in den Code hinter dem Klickereignis ein.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Wenn Sie vor dem Schließen keine Verarbeitung haben, können Sie den folgenden Code direkt in die ASPX selbst im Button-Click-Tag einfügen.
OnClientClick="CloseWindow();"
Hoffe das hilft.
In meiner Situation wurde der folgende Code in eine PHP-Datei eingebettet.
var PreventExitPop = true;
function ExitPop() {
if (PreventExitPop != false) {
return "Hold your horses! \n\nTake the time to reserve your place.Registrations might become paid or closed completely to newcomers!"
}
}
window.onbeforeunload = ExitPop;
Also habe ich die Konsole geöffnet und folgendes geschrieben
PreventExitPop = false
Dies löste das Problem. Finden Sie also den JavaScript-Code heraus, suchen Sie die Variablen und weisen Sie sie einem geeigneten "Wert" zu, der in meinem Fall "falsch" war.
Ich werde dies veröffentlichen, da dies derzeit für meine Website verwendet wird und es sowohl in Google Chrome als auch in IE 10 funktioniert, ohne dass Popup-Nachrichten empfangen werden:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
Ich habe eine Funktion auf meiner Site, die ich ausführen möchte, um eine Ein / Aus-Variable in einer Sitzung zu speichern, ohne direkt zu einer neuen Seite zu wechseln. Ich öffne einfach eine winzige Popup-Webseite. Diese Webseite schließt sich dann sofort mit der onload="window.close();"
Funktion.
a
mit target=_blank
, um ein winziges Popup-Fenster mit einer bestimmten URL zu öffnen, und schließlich benutze ich JS, um das Fenster zu schließen. Der Zweck ist, dass die spezifische URL einen Wert für die Sitzung speichert, um Hintergrundbilder zu deaktivieren, obwohl ich sie hier bald zugunsten von Ajax löschen werde, sobald ich herausgefunden habe, wie Ajax ausgeführt wird. (lernt immer noch die Seile weiter)
window.open('','_self').close()