Как Вы получаете доступ к истории браузера?

В Википедии есть лучшее описание

В C ++ 03 компилятор должен создавать экземпляр шаблона всякий раз, когда в блоке трансляции встречается полностью заданный шаблон. Если шаблон создается с одинаковыми типами во многих единицах перевода, это может значительно увеличить время компиляции. Невозможно предотвратить это в C ++ 03, поэтому C ++ 11 представил объявления extern-шаблонов, аналогичные объявлениям extern-данных.

C ++ 03 имеет этот синтаксис, чтобы заставить компилятор создать экземпляр template:

  template class std::vector;

C ++ 11 теперь предоставляет этот синтаксис:

  extern template class std::vector;

, который сообщает компилятору не создавать экземпляр шаблона в этой единицы перевода.

Предупреждение: nonstandard extension used...

Microsoft VC ++ уже несколько лет использует нестандартную версию этой функции (в C ++ 03) , Компилятор предупреждает об этом, чтобы предотвратить проблемы с переносимостью с кодом, который необходим для компиляции на разных компиляторах.

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

26
задан Joannes Vermorel 9 November 2012 в 15:39
поделиться

3 ответа

JavaScript это должно запустить Вас: http://www.dicabrio.com/javascript/steal-history.php
Там более низок, значит для: http://ha.ckers.org/blog/20070228/steal-browser-history-without-javascript/
Edit:I хотел добавить, что, хотя это работает, это - запущенный маркетинг teqnique и вторжение в личную жизнь.

25
ответ дан UnkwnTech 28 November 2019 в 07:42
поделиться

Вы не можете получить доступ к значениям для записей в истории браузера (ни сторона клиента, ни сторона сервера). Все, что можно сделать, должно передать браузер обратно или передать много шагов. Записи истории иначе скрыты от программируемого доступа.

Также примечание, которым HTTP_REFERER не будет там, если пользователь ввел адрес в панели URL вместо того, чтобы перейти по ссылке к Вашей странице.

2
ответ дан Andrei 28 November 2019 в 07:42
поделиться

К истории браузера нельзя непосредственно получить доступ, но можно сравнить список сайтов с историей пользователя. Это может быть сделано, потому что браузер приписывает различный стиль CSS ссылке, которую не посетили и тот, который имеет.

Используя это различие в стиле можно изменить содержание Вас, страницы с помощью чистого CSS, но в общем JavaScript используются. Существует хорошая статья здесь об использовании этого приема для улучшения пользовательского опыта путем отображения только RSS-агрегатора или ссылок социальных закладок, которые на самом деле использует пользователь: http://www.niallkennedy.com/blog/2008/02/browser-history-sniff.html

1
ответ дан Andrew Johnson 28 November 2019 в 07:42
поделиться