Як я можу закрити вікно браузера, не отримавши запит " Хочете закрити це вікно ?"
Підказка виникає, коли я використовую 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 ви не можете закрити вікно, якщо воно не відкрито сценарієм. Отже, спосіб обійти це буде дозволити браузеру подумати, що ця сторінка відкрита за допомогою сценарію, а потім закрити вікно. Нижче - реалізація.
Спробуйте це, це працює як шарм!
закрити поточне вікно без підказки 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()