Как я могу закрыть окно браузера, не получив запроса « Вы хотите закрыть это окно ?»
Запрос появляется, когда я использую window.close();
функцию.
Как я могу закрыть окно браузера, не получив запроса « Вы хотите закрыть это окно ?»
Запрос появляется, когда я использую window.close();
функцию.
Ответы:
window.open('', '_self', ''); window.close();
У меня это работает.
showModalDialog
? Он не работает в
Дружище ... есть способ, но "хак" его не описать. Вы должны использовать ошибку в IE 6 и 7.
Работает каждый раз!
Вместо звонка window.close()
перенаправьте на другую страницу.
Начальная страница:
alert("No whammies!");
window.open("closer.htm", '_self');
Перенаправить на другую страницу. Это обманывает IE, позволяя вам закрыть браузер на этой странице.
Заключительная страница:
<script type="text/javascript">
window.close();
</script>
Потрясающе да ?!
Скриптам не разрешено закрывать окно, открытое пользователем. Это считается угрозой безопасности. Хотя это не входит ни в один стандарт, все поставщики браузеров следуют этому ( документация Mozilla ). Если это происходит в некоторых браузерах, это ошибка безопасности, которая (в идеале) исправляется очень быстро.
Ни один из хаков в ответах на этот вопрос больше не работает, и если кто-то придумает еще один грязный хакер, в конечном итоге он перестанет работать.
Я предлагаю вам не тратить силы на борьбу с этим и воспользоваться методом, который так услужливо дает вам браузер - спросите пользователя, прежде чем вы, по-видимому, вылетите на его странице.
Вот функция Javascript, которую я использую для закрытия браузера без подсказки или предупреждения, ее также можно вызвать из Flash. Он должен быть в 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
. Вкл. closeWindows
, Открывается новое окно (та же страница), в то время как предыдущее все еще открыто.
Это работает в Chrome 26, Internet Explorer 9 и Safari 5.1.7 ( без использования вспомогательной страницы, как ответ Ника):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
Вложенный window.open
- сделать так, чтобы IE не отображал запрос « Вы хотите закрыть это окно» .
К сожалению, невозможно заставить Firefox закрыть окно.
В теге body:
<body onload="window.open('', '_self', '');">
Чтобы закрыть окно:
<a href="javascript:window.close();">
Протестировано в Safari 4.0.5, FF для Mac 3.6, IE 8.0 и FF для Windows 3.5
По соображениям безопасности окно можно закрыть в JavaScript, только если оно было открыто с помощью JavaScript. Чтобы закрыть окно, вы должны открыть новое окно с _self
целью, которое перезапишет ваше текущее окно, а затем закроет это окно (что вы можете сделать, так как оно было открыто через JavaScript).
window.open('', '_self', '');
window.close();
От сюда :
<a href="javascript:window.opener='x';window.close();">Close</a>
Надо что-то настраивать window.opener
, а то жалуется.
window.open('', '_self', '').close();
Извините, что здесь немного поздно, но я нашел решение, по крайней мере, для своего случая. Протестировано в Safari 11.0.3 и Google Chrome 64.0.3282.167
Из-за улучшений безопасности в IE вы не можете закрыть окно, если оно не открывается сценарием. Таким образом, можно позволить браузеру подумать, что эта страница открывается с помощью сценария, а затем закрыть окно. Ниже представлена реализация.
Попробуйте, это работает как шарм!
javascript закрыть текущее окно без подсказки 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>
Создать функцию JavaScript
<script type="text/javascript">
function closeme() {
window.open('', '_self', '');
window.close();
}
</script>
Теперь напишите этот код и вызовите указанную выше функцию JavaScript.
<a href="Help.aspx" target="_blank" onclick="closeme();">Help</a>
Или просто:
<a href="" onclick="closeme();">close</a>
Это будет работать:
<script type="text/javascript">
function closeWindowNoPrompt()
{
window.open('', '_parent', '');
window.close();
}
</script>
window.opener=window;
window.close();
Поместите следующий код в файл ASPX.
<script language=javascript>
function CloseWindow()
{
window.open('', '_self', '');
window.close();
}
</script>
Поместите следующий код в код события нажатия кнопки.
string myclosescript = "<script language='javascript' type='text/javascript'>CloseWindow();</script>";
Page.ClientScript.RegisterStartupScript(GetType(), "myclosescript", myclosescript);
Если у вас нет обработки перед закрытием, вы можете напрямую поместить следующий код в сам ASPX в теге нажатия кнопки.
OnClientClick="CloseWindow();"
Надеюсь это поможет.
В моей ситуации следующий код был встроен в файл 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;
Итак, я открыл консоль и написал следующее
PreventExitPop = false
Это решило проблему. Итак, найдите код JavaScript, найдите переменную (ы) и присвойте им соответствующее «значение», которое в моем случае было «ложным».
Я собираюсь опубликовать это, потому что это то, что я сейчас использую для своего сайта, и он работает как в Google Chrome, так и в IE 10, не получая никаких всплывающих сообщений:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
У меня есть функция на моем сайте, которую я хочу запустить, чтобы сохранить переменную включения / выключения в сеансе, не переходя напрямую на новую страницу, поэтому я просто открываю крошечную всплывающую веб-страницу. Затем эта веб-страница немедленно закрывается с onload="window.close();"
функцией.
a
с, target=_blank
чтобы открыть крошечное всплывающее окно по определенному URL-адресу, а затем, наконец, я использую JS, чтобы закрыть окно. Его цель заключается в том, что конкретный URL-адрес сохраняет значение сеанса для отключения фоновых изображений, хотя здесь скоро я удалю его в пользу ajax, как только выясню, как использовать ajax. (все еще изучаю верёвки)
window.open('','_self').close()