Могу ли я узнать, когда люди открывают ссылку на мой сайт в новой вкладке? - PullRequest
4 голосов
/ 02 ноября 2011

То, что я хочу знать, - это когда люди нажимают на ссылку на моем сайте (внутренняя ссылка - не на другие сайты), если они просто щелкают по ней или щелкают по ней Ctrl (или щелчок правой кнопкой мыши - открывается в новой вкладке).

Я использую PHP.

Итак, пример: Человек на странице 1 и нажмите на ссылку для страницы 2.Когда они находятся на странице 2, я хочу знать, откуда они пришли (_server ['http_referer'] дает мне это), но я также хочу знать, открыли ли они страницу в новом окне / вкладке.Мне нужно знать это из-за кнопки возврата истории на странице.

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


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

<script>
var history_status = history.length;
var referrer_site = document.referrer;

if(history_status > 1 && referrer_site != "") {
    alert(referrer_site);
} else {
    alert('No referrer site');
}
</script>

Мне нужно немного изменить его, но это была моя первая демонстрация, чтобы проверить, работает ли она (и она это сделала)

Сначала мне нужно выяснить, какой браузер использует пользователь, потому что history_status выдает 0 для первой страницы вистория, когда вы используете IE, но 1, если вы используете Firefox или Chrome.

1 Ответ

1 голос
/ 02 ноября 2011

Это не похоже на хороший пользовательский опыт.Кнопки «Назад» и возможность открывать новые вкладки - это то, что пользователи ожидают, что будут вести себя определенным образом.Лично я бы расстроился.Какой смысл в новой вкладке, если они не могут сформировать собственную уникальную историю просмотров только для этой вкладки?

Если вы действительно действительно хотели это сделать.Создайте cookie с номером, на каждой странице увеличивайте номер загрузки и сохраняйте URL страницы в своей базе данных для этого сеанса.При загрузке страницы извлеките историю и загрузите ее в историю браузера через JavaScript.EEEK.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...