Для веб-приложения, как закрыть все связанные окна браузера, когда время сеанса истекло / пользователь вышел? - PullRequest
1 голос
/ 08 декабря 2008

Предположим, пользователь открыл мое веб-приложение во многих окнах браузера. Через некоторое время он вышел из приложения или вышел из него.

Я хочу закрыть все связанные окна браузера. Как мы можем справиться с этим?

(я думаю, что GMAIL делает это)

Ответы [ 3 ]

2 голосов
/ 08 декабря 2008

Если вы поддерживаете ссылки на любые дочерние окна, вы можете использовать window.close () в сочетании с setTimeout () .

Как примечание, вам, вероятно, следует соблюдать осторожность при закрытии окон пользователей, поскольку это может привести к ухудшению работы пользователей. Представьте, что я открыл веб-сайт моего банка, чтобы просмотреть транзакции для учетной записи, чтобы я мог очистить / согласовать их. Но в середине я убегаю, чтобы взять обед или что-то еще. Когда я возвращаюсь, я обнаруживаю, что все мои окна были закрыты, и мне приходится заново регистрироваться, хотя мне это и не нужно, потому что я просто смотрю на относительно статичный список данных. Или, что еще хуже, если закрытие окна не закодировано правильно, я могу обнаружить, что мой браузер полностью закрыт, что, безусловно, плохо.

1 голос
/ 08 декабря 2008

Не. Что касается обычного пользователя, ваш веб-сайт не имеет права закрывать окна пользователя, и они будут ненавидеть ваш сайт, если вы попытаетесь. Если вы считаете, что правильная работа вашего веб-сайта зависит от возможности закрыть браузер пользователя, значит, вы делаете это неправильно.

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

0 голосов
/ 08 декабря 2008

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

...