Javascript close this windows

Форум

Справочник

window.close

Синтаксис

Описание, примеры

Если закрываемое окно не было открыто при помощи window.open, то
при его закрытии выводится предупреждение. Посетитель может отклонить закрытие.

А как закрыть окно если открылось не через javascript ?

А также Но будет вопрос посетителю, хочет ли он закрыть окно.

function exit() <
var thisWindow = window.open(«Listing3.html»,’_self’);
var exit = confirm(«Хотите закрыть страницу?»);
if(exit) <
thisWindow.close();
>
>

Как из родительского окна можно передать фокус окну, открытому следующей командой?
wid = window.open(‘1.htm’,’wname’,’width=300,height=300′);
wname.focus()
wid.focus()
window.wid.focus()
window.wname.focus()
self.wid.focus()
помогите плиз.

а у меня не получается закрыть окно, которое открыто не скриптом.

window.close.php

js/window.js

Подскажите как закрыть страницу через javaScript

если вставить в страницу скрипт с window.close(); то ничего не происходит..

нежно что бы при открытии страницы она закрывалась скажем через 5 секунд.

Та же проблема. Не срабатывает window.close()

Для доступа к свойствам текущего окна используется self. Используйте self.close();

Почему-то window.close(), self.close(), this.close() работают только в Opera.

Если окно создано через фрейм на jquery. Много вопросов на форумах, как закрыть модальное окно из фрейма, обычно ответ один — никак. Но решение есть и оно аналогично плагину thickbox.

Просто навесить код на элемент находящийся внутри фрейма.

По работе стоит задача сделать кнопку закрытия окна браузера без вопроса «Действительно ли вы хотите закрыть. » Пробую сейчас для IE 8 — работает прекрасно. На IE 6 — нет. Где посмотреть какими версиями експлорера поддерживается эта функциональность и нет ли аналога для шестого?

Почему все так сложно?
Работать не возможно.
Почему нельзя все упростить?
Простые вещи через жопу делать надо. Невероятно. 21 век.

Дело в том, что все упирается в политику безопасности.

Если вы хотите сделать что-бы было просто, то будьте готовы, что у вас будут «самопроизвольно» (с помощью кода в баннере например) закрываться все вкладки.

Дело в том, что все упирается в политику безопасности.

Если вы хотите сделать что-бы было просто, то будьте готовы, что у вас будут «самопроизвольно» (с помощью кода в баннере например) закрываться все вкладки.

Всегда открывал окно примерно таким кодом:

function ShowWin(src, width, height) <
obj = window.open(«», «», «scrollbars=0,dialog=0,minimizable=1,modal=1,width=»+width+»,height=»+height+»,resizable=0″ ) ;
obj.document.write(» » ) ;
obj.document.write(» » ) ;
obj.document.write(» » ) ;
>

Потребовалось закрытие окна, при клике вне него. Нашел в и-нете такой код:

Добавил в свою функцию, последней строкой, т.е. получилось:

function ShowWin(src, width, height) <
obj = window.open(«», «», «scrollbars=0,dialog=0,minimizable=1,modal=1,width=»+width+»,height=»+height+»,resizable=0″ ) ;
obj.document.write(» » ) ;
obj.document.write(» » ) ;
obj.document.write(» » ) ;
this.onfocus=function()
>

Все работает, окно закрывается при клике «снаружи».
Не понимаю, почему ONFOCUS, а не ONBLUR?
Может, кто-нибудь пояснить? Помогите пожалуйста разобраться!

Окно закрывается при клике по родительскому окну. В вашем случае, вызов функции showWin происходит в «глобальном» контексте, и внутри функции this указывает на window. Соответственно в последней строчке вы задаете обработчик получения фокуса родительским окном, а внутри обработчика — закрываете дочернее окно (которое внутри обработчка представлено переменной obj)

это какая-то магия, но работает
вызванная без аргументов, функция закрывает текущее окно

function close_window(url) <
var newWindow = window.open(», ‘_self’, »); //open the current window
window.close(url);
>

ааааа. это же просто чит !

А может ко сможет мне помочь? Мне нужно, чтоб по нажатию «ОК» в диалоговом окне alert закрывалась браузерная вкладка

Как сделать так что бы при нажатии на ОК посетитель переходил на другую страницу, а если отмена закрывалась вкладка?

Если кто мучался с закрытием модольного окна, открытого через jquery, (Например:
highslide), то вот таблетка:

играю в браузерную игру
минимальную информацию обо мне в игре можно узнать просто нажав на мой профиль
где откроется отдельное окно
но и этого я бы не хотел
там можно загрузить свою картинку (с любого сайта), вписать домашнюю страницу, оставить свою почту
вот в этих вариантах есть возможность закрытия окна с моим профилем?
что бы просто автоматически закрывалась открывшись
например когда обращается за картинкой на какой то ресурс а оттуда сразу команда закрыть окно

javascript:close() в ссылку и не парься

Есть ли способ закрыть текущую страницу в последнем chrome.
var newWindow = window.open(», ‘_self’, »); //open the current window
window.close();
Этот способ не работает.
В консоль падает warning Scripts may close only the windows that were opened by it.

Ребят, помогите.
Есть окно, из которого я открываю другое окно
var w = window.open(‘test2.html’, ‘MyWindow’);
во втором окне я делаю что надо, и жму кнопку закрыть
window.close();
как только эта страница закрывается через эту функцию, мне надо запустить скрипт на основной странице.
Как это отследить .

У меня работает только такой способ: self.close()

Доработал «читерский».
Пропишите следующего рода скрипт на закрываемую страницу.

И вызовите функцию DoCPExit();

Все успешно закрывается и без каких-либо подтверждений для пользователя.
Причем вызов функции можно настроить по времени истечения, например 5 секунд.

Detect Close windows event by jQuery

Could you please give me the best way to detect only window close event for all browsers by jQuery?

I mean clicking X button on the browser or window.close() , not meaning F5 , form submission, window.location or link. I was looking for many threads but have not found the right way yet.

6 Answers 6

There is no specific event for capturing browser close event.

You can only capture on unload of the current page.

By this method, it will be effected while refreshing / navigating the current page.

Even calculating of X Y postion of the mouse event doesn’t give you good result.

Unload() is deprecated in jQuery version 1.8, so if you use jQuery > 1.8 you can use even beforeunload instead.

The beforeunload event fires whenever the user leaves your page for any reason.

The unload() method was deprecated in jQuery version 1.8.

so if you are using versions older than 1.8

and if you are using 1.8 and higher

hope this will work 🙂

There is no specific event for capturing browser close event. But we can detect by the browser positions XY.

Combine the mousemove and window.onbeforeunload event :- I used for set TimeOut for Audit Table.

You can solve this problem with vanilla-Js:

Unload Basics

If you want to prompt or warn your user that they’re going to close your page, you need to add code that sets .returnValue on a beforeunload event:

There’s two things to remember.

Most modern browsers (Chrome 51+, Safari 9.1+ etc) will ignore what you say and just present a generic message. This prevents webpage authors from writing egregious messages, e.g., «Closing this tab will make your computer EXPLODE! 💣».

Showing a prompt isn’t guaranteed. Just like playing audio on the web, browsers can ignore your request if a user hasn’t interacted with your page. As a user, imagine opening and closing a tab that you never switch to—the background tab should not be able to prompt you that it’s closing.

Optionally Show

You can add a simple condition to control whether to prompt your user by checking something within the event handler. This is fairly basic good practice, and could work well if you’re just trying to warn a user that they’ve not finished filling out a single static form. For example:

But if your webpage or webapp is reasonably complex, these kinds of checks can get unwieldy. Sure, you can add more and more checks, but a good abstraction layer can help you and have other benefits—which I’ll get to later. 👷‍♀️

Promises

So, let’s build an abstraction layer around the Promise object, which represents the future result of work- like a response from a network fetch() .

The traditional way folks are taught promises is to think of them as a single operation, perhaps requiring several steps- fetch from the server, update the DOM, save to a database. However, by sharing the Promise , other code can leverage it to watch when it’s finished.

Pending Work

Here’s an example of keeping track of pending work. By calling addToPendingWork with a Promise —for example, one returned from fetch() —we’ll control whether to warn the user that they’re going to unload your page.

Now, all you need to do is call addToPendingWork(p) on a promise, maybe one returned from fetch() . This works well for network operations and such- they naturally return a Promise because you’re blocked on something outside the webpage’s control.

Ключевое слово this в JavaScript для начинающих

Автор материала, перевод которого мы сегодня публикуем, говорит, что когда она работала в сфере бухучёта, там применялись понятные термины, значения которых легко найти в словаре. А вот занявшись программированием, и, в частности, JavaScript, она начала сталкиваться с такими понятиями, определения которых в словарях уже не найти. Например, это касается ключевого слова this . Она вспоминает то время, когда познакомилась с JS-объектами и функциями-конструкторами, в которых использовалось это ключевое слово, но добраться до его точного смысла оказалось не так уж и просто. Она полагает, что подобные проблемы встают и перед другими новичками, особенно перед теми, кто раньше программированием не занимался. Тем, кто хочет изучить JavaScript, в любом случае придётся разобраться с this . Этот материал направлен на то, чтобы всем желающим в этом помочь.

Что такое this?

Предлагаю вашему вниманию моё собственное определение ключевого слова this . This — это ключевое слово, используемое в JavaScript, которое имеет особое значение, зависящее от контекста в котором оно применяется.

Причина, по которой this вызывает столько путаницы у новичков, заключается в том, что контекст this меняется в зависимости от его использования.

This можно считать динамическим ключевым словом. Мне нравится, как понятие «контекст» раскрыто в этой статье Райана Морра. По его словам, контекст всегда является значением ключевого слова this , которое ссылается на объект, «владеющий» кодом, выполняемым в текущий момент. Однако, тот контекст, который имеет отношение к this , это не то же самое, что контекст выполнения.

Итак, когда мы пользуемся ключевым словом this , мы, на самом деле, обращаемся с его помощью к некоему объекту. Поговорим о том, что это за объект, рассмотрев несколько примеров.

Ситуации, когда this указывает на объект window

Если вы попытаетесь обратиться к ключевому слову this в глобальной области видимости, оно будет привязано к глобальному контексту, то есть — к объекту window в браузере.

При использовании функций, которые имеются в глобальном контексте (это отличает их от методов объектов) ключевое слово this в них будет указывать на объект window .

Попробуйте выполнить этот код, например, в консоли браузера:

Использование this внутри объекта

Когда this используется внутри объекта, это ключевое слово ссылается на сам объект. Рассмотрим пример. Предположим, вы создали объект dog с методами и обратились в одном из его методов к this . Когда this используется внутри этого метода, это ключевое слово олицетворяет объект dog .

This и вложенные объекты

Применение this во вложенных объектах может создать некоторую путаницу. В подобных ситуациях стоит помнить о том, что ключевое слово this относиться к тому объекту, в методе которого оно используется. Рассмотрим пример.

Особенности стрелочных функций

Стрелочные функции ведут себя не так, как обычные функции. Вспомните: при обращении к this в методе объекта, этому ключевому слову соответствует объект, которому принадлежит метод. Однако это не относится к стрелочным функциям. Вместо этого, this в таких функциях относится к глобальному контексту (к объекту window ). Рассмотрим следующий код, который можно запустить в консоли браузера.

Если, озадачившись рассматриваемым вопросом, заглянуть на MDN, там можно найти сведения о том, что стрелочные функции имеют более короткую форму записи, чем функциональные выражения и не привязаны к собственным сущностям this , arguments , super или new.target . Стрелочные функции лучше всего подходят для использования их в роли обычных функций, а не методов объектов, их нельзя использовать в роли конструкторов.

Прислушаемся к MDN и не будем использовать стрелочные функции в качестве методов объектов.

Использование this в обычных функциях

Когда обычная функция находится в глобальной области видимости, то ключевое слово this , использованное в ней, будет привязано к объекту window . Ниже приведён пример, в котором функцию test можно рассматривать в виде метода объекта window .

Однако если функция выполняется в строгом режиме, то в this будет записано undefined , так как в этом режиме запрещены привязки по умолчанию. Попробуйте запустить следующий пример в консоли браузера.

Обращение к this из функции, которая была объявлена за пределами объекта, а потом назначена в качестве его метода

Рассмотрим пример с уже известным нам объектом dog . В качестве метода этого объекта можно назначить функцию chase , объявленную за его пределами. Тут в объекте dog никаких методов не было, до тех пор, пока мы не создали метод foo , которому назначена функция chase . Если теперь вызвать метод dog.foo , то будет вызвана функция chase . При этом ключевое слово this , к которому обращаются в этой функции, указывает на объект dog . А функция chase , при попытке её вызова как самостоятельной функции, будет вести себя неправильно, так как при таком подходе this будет указывать на глобальный объект, в котором нет тех свойств, к которым мы, в этой функции, обращаемся через this .

Ключевое слово new и this

Ключевое слово this находит применение в функциях-конструкторах, используемых для создания объектов, так как оно позволяет, универсальным образом, работать со множеством объектов, создаваемых с помощью такой функции. В JavaScript есть и стандартные функции-конструкторы, с помощью которых, например, можно создавать объекты типа Number или String . Подобные функции, определяемые программистом самостоятельно, позволяют ему создавать объекты, состав свойств и методов которых задаётся им самим.

Как вы уже поняли, мне нравятся собаки, поэтому опишем функцию-конструктор для создания объектов типа Dog , содержащих некоторые свойства и методы.

Когда функцию-конструктор вызывают с использованием ключевого слова new , this в ней указывает на новый объект, который, с помощью конструктора, снабжают свойствами и методами.

Вот как можно работать со стандартными конструкторами JavaScript.

Теперь поработаем с только что созданной функцией-конструктором Dog .

Вот ещё один пример использования функций-конструкторов.

О важности ключевого слова new

При вызове функции-конструктора с использованием ключевого слова new ключевое слово this указывает на новый объект, который, после некоторой работы над ним, будет возвращён из этой функции. Ключевое слово this в данной ситуации весьма важно. Почему? Всё дело в том, что с его помощью можно, используя единственную функцию-конструктор, создавать множество однотипных объектов.

Это позволяет нам масштабировать приложение и сокращать дублирование кода. Для того чтобы понять важность этого механизма, подумайте о том, как устроены учётные записи в социальных сетях. Каждая учётная запись может представлять собой экземпляр объекта, создаваемый с помощью функции-конструктора Friend . Каждый такой объект можно заполнять уникальными данными о пользователе. Рассмотрим следующий код.

Итоги

На самом деле, особенности использования ключевого слова this в JavaScript не ограничиваются вышеописанными примерами. Так, в череду этих примеров можно было бы включить использование функций call , apply и bind . Так как материал этот рассчитан на начинающих и ориентирован на разъяснение основ, мы их здесь не касаемся. Однако если сейчас у вас сформировалось начальное понимание this , то и с этими методами вы вполне сможете разобраться. Главное — помните о том, что если что-то с первого раза понять не удаётся, не прекращайте учиться, практикуйтесь, читайте материалы по интересующей вас теме. В одном из них вам обязательно попадётся нечто такое (какая-то удачная фраза, например), что поможет понять то, что раньше понять не удавалось.

Уважаемые читатели! Возникали ли у вас сложности с пониманием ключевого слова this в JavaScript?

Читайте также:  Windows oem без переустановки
Оцените статью