Jak mogę zamknąć okno przeglądarki bez pytania Czy chcesz zamknąć to okno ?
Monit pojawia się, gdy używam window.close();funkcji.
Jak mogę zamknąć okno przeglądarki bez pytania Czy chcesz zamknąć to okno ?
Monit pojawia się, gdy używam window.close();funkcji.
Odpowiedzi:
window.open('', '_self', ''); window.close();
To działa dla mnie.
showModalDialog? Nie działa na IE10
Mój przyjacielu… jest sposób, ale „hack” nie zaczyna go opisywać. Zasadniczo musisz wykorzystać błąd w IE 6 i 7.
Działa za każdym razem!
Zamiast dzwonić window.close(), przekieruj na inną stronę.
Strona początkowa:
alert("No whammies!");
window.open("closer.htm", '_self');
Przekieruj na inną stronę. To oszukuje IE, pozwalając ci zamknąć przeglądarkę na tej stronie.
Strona zamykająca:
<script type="text/javascript">
window.close();
</script>
Niesamowite co ?!
Skrypty nie mogą zamknąć okna, które otworzył użytkownik. Jest to uważane za zagrożenie bezpieczeństwa. Chociaż nie jest to w żadnym standardzie, wszyscy dostawcy przeglądarek postępują zgodnie z tym ( dokumentacja Mozilli ). Jeśli tak się dzieje w niektórych przeglądarkach, jest to błąd bezpieczeństwa, który (najlepiej) jest naprawiany bardzo szybko.
Żaden z hacków w odpowiedziach na to pytanie już nie działa, a jeśli ktoś wymyśli kolejny brudny hack, w końcu również przestanie działać.
Sugeruję, abyś nie marnował energii na walkę z tym i skorzystał z metody, którą daje Ci przeglądarka - zapytaj użytkownika, zanim pozornie zawiesisz jego stronę.
Oto funkcja Javascript, której używam do zamykania przeglądarki bez pytania lub ostrzeżenia, można ją również wywołać z Flasha. Powinien być w pliku html.
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. On closeWindows, otwiera nowe okno (tę samą stronę), podczas gdy poprzednie jest nadal otwarte.
Działa to w Chrome 26, Internet Explorer 9 i Safari 5.1.7 ( bez użycia strony pomocniczej, ala odpowiedź Nicka):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
Zagnieżdżenie window.openpowoduje, że IE nie wyświetla monitu Czy chcesz zamknąć to okno .
Niestety nie można zmusić Firefoksa do zamknięcia okna.
W tagu body:
<body onload="window.open('', '_self', '');">
Aby zamknąć okno:
<a href="javascript:window.close();">
Testowano w przeglądarce Safari 4.0.5, FF dla komputerów Mac 3.6, IE 8.0 i FF dla systemu Windows 3.5
Ze względów bezpieczeństwa okno można zamknąć w JavaScript tylko wtedy, gdy zostało otwarte przez JavaScript. Aby zamknąć okno, musisz otworzyć nowe okno z _selfcelem, który nadpisze twoje obecne okno, a następnie zamknij to okno (co możesz zrobić, ponieważ zostało otwarte przez JavaScript).
window.open('', '_self', '');
window.close();
Od tutaj :
<a href="javascript:window.opener='x';window.close();">Close</a>
Trzeba window.openerna coś ustawić , inaczej będzie narzekać.
window.open('', '_self', '').close();
Przepraszam trochę za późno, ale znalazłem rozwiązanie, przynajmniej w moim przypadku. Testowano w przeglądarce Safari 11.0.3 i Google Chrome 64.0.3282.167
Ze względu na ulepszenia zabezpieczeń w IE nie można zamknąć okna, dopóki nie zostanie otwarte przez skrypt. Aby obejść ten problem, należy pozwolić przeglądarce pomyśleć, że ta strona jest otwierana za pomocą skryptu, a następnie zamknąć okno. Poniżej znajduje się realizacja.
Spróbuj tego, to działa jak urok!
javascript zamknij bieżące okno bez pytania IE
<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>
Utwórz funkcję JavaScript
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
Teraz napisz ten kod i wywołaj powyższą funkcję JavaScript
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
Lub po prostu:
<a href="" onclick="closeme();">close</a>
To zadziała:
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
Umieść następujący kod w pliku ASPX.
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
Umieść następujący kod w kodzie zdarzenia kliknięcia przycisku.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Jeśli nie masz żadnego przetwarzania przed zamknięciem, możesz bezpośrednio umieścić następujący kod w samym ASPX w tagu kliknięcia przycisku.
OnClientClick="CloseWindow();"
Mam nadzieję że to pomoże.
W mojej sytuacji następujący kod został osadzony w pliku php.
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;
Więc otworzyłem konsolę i napisałem co następuje
PreventExitPop = false
To rozwiązało problem. Więc znajdź kod JavaScript i znajdź zmienne i przypisz je do odpowiedniej „wartości”, która w moim przypadku była „fałszywa”
Zamierzam to opublikować, ponieważ właśnie tego używam w mojej witrynie i działa zarówno w Google Chrome, jak i IE 10 bez otrzymywania żadnych wyskakujących wiadomości:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
W mojej witrynie jest funkcja, którą chcę uruchomić, aby zapisać zmienną włączającą / wyłączającą w sesji bez bezpośredniego przechodzenia do nowej strony, więc po prostu otwieram niewielką wyskakującą stronę internetową. Ta strona internetowa zamyka się następnie natychmiast z onload="window.close();"funkcją.
az, target=_blankaby otworzyć małe okienko wyskakujące pod określonym adresem URL, a na koniec używam JS do zamknięcia okna. Chodzi o to, że określony adres URL zapisuje wartość w sesji, aby wyłączyć obrazy tła, chociaż tutaj wkrótce usunę go na korzyść Ajax, gdy tylko dowiem się, jak zrobić Ajax. (wciąż ucząc się lin persay)
window.open('','_self').close()