Как закрыть окно браузера, не получив сообщение о закрытии этого окна?
Запрос появляется, когда я использую функцию window.close();
.
Как закрыть окно браузера, не получив сообщение о закрытии этого окна?
Запрос появляется, когда я использую функцию window.close();
.
window.open('', '_self', ''); window.close();
Это работает для меня.
Мой друг... есть способ, но "хак" не начинает описывать его. Вы должны в основном использовать ошибку в 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){
}
}
}
В теге 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
Это работает в Chrome 26, Internet Explorer 9 и Safari 5.1.7 ( без использования вспомогательной страницы, ответ ala Nick):
<script type="text/javascript">
window.open('javascript:window.open("", "_self", "");window.close();', '_self');
</script>
Вложенный window.open
должен сделать IE не отображаемым. Вы хотите закрыть это окно.
К сожалению, Firefox не может закрыть окно.
По соображениям безопасности окно может быть закрыто только в JavaScript, если оно было открыто JavaScript. Чтобы закрыть окно, вы должны открыть новое окно с _self
в качестве цели, которое перезапишет ваше текущее окно, а затем закроет его (что вы можете сделать с момента его открытия с помощью JavaScript).
window.open('', '_self', '');
window.close();
Из здесь:
<a href="javascript:window.opener='x';window.close();">Close</a>
Вам нужно установить window.opener
на что-то, иначе он будет жаловаться.
Из-за улучшений безопасности в IE вы не можете закрыть окно, если оно не открыто с помощью script. Таким образом, обойти это будет, чтобы браузер подумал, что эта страница открывается с помощью script, а затем для закрытия окна. Ниже приведена реализация.
Попробуйте это, это работает как шарм!
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>
window.open('', '_self', '').close();
window.opener=window;
window.close();
Лучшее решение, которое я нашел:
this.focus();
self.opener=this;
self.close();
Браузер жалуется, потому что вы используете 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 в тег clickTick.
OnClientClick="CloseWindow();"
Надеюсь, что это поможет.
Это будет работать:
<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 и найдите переменную и назначьте их соответствующему "значению", которое в моем случае было "false"
Я собираюсь опубликовать это, потому что это то, что я сейчас использую для своего сайта, и работает как в Google Chrome, так и в IE 10 без каких-либо всплывающих сообщений:
<html>
<head>
</head>
<body onload="window.close();">
</body>
</html>
У меня есть функция на моем сайте, которую я хочу запустить, чтобы сохранить переменную on/off в сеансе без прямого перехода на новую страницу, поэтому я просто открываю крошечную всплывающую веб-страницу. Затем веб-страница немедленно закрывается функцией onload="window.close();"
.