Получить открытые страницы/вкладки с mootools

У меня есть сайт, которому нужно знать, открыты ли у пользователя другие страницы/вкладки только для выполнения в них действий (например, их закрытие, перенаправление и т. д.). Я не говорю о всплывающих окнах, я говорю о контенте, который пользователь открывает на новой вкладке страницы вручную.

Итак, в основном мне нужен метод, чтобы получить список вкладок/окон, открытых в моем домене, и иметь доступ к содержимому в них (поскольку все это один и тот же домен, проблем с безопасностью быть не должно)

Что-то подобное существует?


person shadow_of__soul    schedule 24.03.2011    source источник


Ответы (3)


Я думаю, что это возможно, поскольку вы говорите, что все это находится в одном домене.

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

person eikes    schedule 24.03.2011
comment
да, я думал об этом варианте, но я хотел что-то более клиентское решение, а не вести учет вкладок на сервере (что-то вроде myTab.element.whatever в JS) - person shadow_of__soul; 24.03.2011
comment
единственный способ отслеживать открытые вещи - использовать window.open для всех ваших ссылок. это по-прежнему не будет работать, если пользователь дублирует вкладку или окно или открывает другую ссылку из своих закладок. - person Dimitar Christoff; 24.03.2011
comment
хорошо, тогда мне нужно будет сделать что-то на основе сервера, похоже, нет ничего похожего на то, что мне нужно :) - person shadow_of__soul; 24.03.2011
comment
вы также можете сделать то же самое с файлами cookie :) вам все равно нужно будет добавить опрос для обнаружения измененных значений, но решение будет полностью на стороне клиента (все вкладки в одном домене === все вкладки могут получить доступ к одному и тому же набору файлов cookie) . - person gonchuki; 26.03.2011

Невозможно с javascript, и на то есть веская причина.

Вы действительно хотите, чтобы веб-сайты начали перенаправлять другие ваши вкладки?

person Shurdoof    schedule 24.03.2011
comment
прочитайте вопрос, я знаю ограничения безопасности JS в отношении контента в других доменах, я говорю о страницах во всем том же домене. - person shadow_of__soul; 24.03.2011

На самом деле это ВОЗМОЖНО, и вам не нужно проходить через постоянные запросы к серверу. Используйте localStorage и привяжите к событию хранилища. Реализация на самом деле очень проста. Единственная серьезная проблема заключается в том, что не все браузеры следуют спецификации относительно того, запускается ли событие хранилища в исходном окне, но с помощью нескольких строк кода вы можете нормализовать поведение.

person John Crenshaw    schedule 29.06.2011