Несмотря на то, что все остальные сказали здесь, что вы не можете помешать кому-либо открыть ваш сайт дважды, для вас может быть обходной путь. Обратите внимание, что это не 100% -ное решение, и вам потребуется разработать дальнейший код, основанный на этом.
Насколько я понимаю, у вас есть следующие проблемы:
- Как определить, открыла ли пользователь вашу страницу с помощью окна / тега, который разделяет данные сеанса (т.е. две вкладки в Chrome, 2 окна Chrome и т. Д.) - это самая простая часть.
- Как определить, открыла ли пользователь вашу страницу в другом браузере (то есть одновременно открыть в FF & Chrome) - это хитрый вопрос.
Однако - вы можете использовать LSO - Локальные общие объекты , чтобы выполнить это. Это фрагменты данных, аналогичные файлам cookie, хранящимся на стороне клиента. И они совместимы с браузером и доменом. Вы можете найти хорошую библиотеку EVERCOOKIE для их использования здесь .
Установив такой файл cookie, вы сможете отслеживать пользователя, даже если он открывает новое окно или даже если он открывает вашу страницу в другом браузере, если браузеры используют одну и ту же установку Flash и т. Д.
Обратите внимание, что это не помешает кому-то открыть два окна напрямую, но позволит вам отправить его в то же состояние последовательности, что и в другом окне, например.
Вы также должны знать, что это не 100% решение. Всегда найдется какая-то хитрость, чтобы обойти это, хотя я думаю, что обычные пользователи не смогут получить это ...