Как закрыть окно браузера, не получая приглашение Вы хотите закрыть это окно?
Подсказка появляется, когда я использую функцию window.close();
.
Как закрыть окно браузера, не получая приглашение Вы хотите закрыть это окно?
Подсказка появляется, когда я использую функцию window.close();
.
window.open('', '_self', ''); window.close();
Это работает для меня.
showModalDialog
? Не работает на IE10
- person bjan; 09.03.2016
Скриптам не разрешено закрывать окно, открытое пользователем. Это считается угрозой безопасности. Хотя этого нет ни в одном стандарте, все поставщики браузеров следуют ему (Mozilla docs). Если это происходит в некоторых браузерах, это ошибка безопасности, которая (в идеале) исправляется очень быстро.
Ни один из хаков в ответах на этот вопрос больше не работает, и если кто-то придумает еще один грязный хак, в конце концов он тоже перестанет работать.
Я предлагаю вам не тратить энергию на борьбу с этим и использовать метод, который браузер так любезно предлагает вам спросить пользователя, прежде чем вы, казалось бы, сломаете его страницу.
Мой друг... есть способ, но слово "хак" не подходит для его описания. Вы должны в основном использовать ошибку в IE 6 и 7.
Работает каждый раз!
Вместо вызова window.close()
перенаправьте на другую страницу.
Начальная страница:
alert("No whammies!");
window.open("closer.htm", '_self');
Редирект на другую страницу. Это обманывает IE, позволяя вам закрыть браузер на этой странице.
Заключительная страница:
<script type="text/javascript">
window.close();
</script>
Круто да?!
Вот функция 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
открывается новое окно (та же страница), в то время как предыдущее все еще открыто.
- person bjan; 09.03.2016
Это работает в 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();
window.open('', '_self', '').close();
Извините, что немного опоздал, но я нашел решение, по крайней мере, для моего случая. Протестировано в Safari 11.0.3 и Google Chrome 64.0.3282.167.
dom:allow_scripts_to_close_windows
установлено значение true (по умолчанию — false).
- person Suncat2000; 29.03.2021
Из здесь:
<a href="javascript:window.opener='x';window.close();">Close</a>
Вам нужно установить window.opener
на что-то, иначе он жалуется.
Из-за улучшений безопасности в 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>
В моей ситуации следующий код был встроен в файл 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, найдите переменную (переменные) и назначьте им соответствующее «значение», которое в моем случае было «ложным».
Браузер жалуется, потому что вы используете JavaScript для закрытия окна, которое не было открыто с помощью JavaScript, то есть window.open('foo.html');
.
Поместите следующий код в файл 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();"
Надеюсь это поможет.
Лучшее решение, которое я нашел, это:
this.focus();
self.opener=this;
self.close();
Я собираюсь опубликовать это, потому что это то, что я сейчас использую для своего сайта, и оно работает как в Google Chrome, так и в IE 10 без каких-либо всплывающих сообщений:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
У меня есть функция на моем сайте, которую я хочу запустить, чтобы сохранить переменную включения/выключения в сеансе, не переходя напрямую на новую страницу, поэтому я просто открываю крошечную всплывающую веб-страницу. Затем эта веб-страница немедленно закрывается с помощью функции onload="window.close();"
.
a
с target=_blank
, чтобы открыть крошечное всплывающее окно по определенному URL-адресу, затем, наконец, я использую JS, чтобы закрыть окно. Цель состоит в том, чтобы конкретный URL-адрес сохранял значение сеанса для отключения фоновых изображений, хотя здесь вскоре я удалю его в пользу ajax, как только выясню, как это сделать. (все еще изучаю веревки)
- person Logan Hasbrouck; 27.10.2015
window.open('','_self').close()
- person markasoftware   schedule 23.11.2013