location
объект содержит всю информацию об URL, на котором в данный момент находится браузер.
hash Returns the anchor portion of a URL
host Returns the hostname and port of a URL
hostname Returns the hostname of a URL
href Returns the entire URL
pathname Returns the path name of a URL
port Returns the port number the server uses for a URL
protocol Returns the protocol of a URL
search Returns the query portion of a URL
РЕДАКТИРОВАТЬ Теперь, чтобы ответить на вопрос, который вы действительно хотели задать, и как отследить, какие страницы используют ваш файл javascript. Я думаю (и я не реализовывал нечто подобное раньше), чтобы использовать ту же стратегию, что и сайты аналитики.
Кажется, что все они используют разновидность пикселя отслеживания, когда браузер загружает файл сценария (например, QuantServer - http://edge.quantserve.com/quant.js).. Затем сценарий запрашивает 1x1 пиксель с сервера Google и кодирует URL-адрес веб-страницы в адрес изображения. Таким образом, для stackoverflow.com, URL-адрес пикселя:
http://pixel.quantserve.com/pixel;r=3547206;fpan=0;fpa=P0-82955756-1264139666260;ns=0;url=http%3A%2F%2Fstackoverflow.com.... (Я не раскрыл адрес, так как мой браузер отправляет его, так как я не знаю, что он обо мне сообщает :)).
Как вы видите, URL сайта является частью URL изображения. На стороне сервера вам понадобится обработчик, который обслуживает это изображение и регистрирует адрес страницы, извлекая его из URL-адреса изображения.
Причина, по которой это изображение, а не запрос AJAX, заключается в том, что запросы AJAX подчиняются ограничениям XSS браузера. По сути, браузер не будет выполнять AJAX-вызов на веб-сайте, который не обслуживает страницу. Это означает, что на странице www.otherpeopleswebsite.com запрещено совершать вызовы AJAX на www.mywebsite.com. Нет таких ограничений для изображений (или файлов JavaScript в этом отношении).
Итак, простая система для реализации чего-то подобного могла бы сделать что-то для этого:
//s.js
var oldLoad = window.onload;
window.onload = function(){
if (oldLoad)
oldLoad();
var img = document.createElement('img');
img.setAttribute('src', 'www.mysite.com/pixel?url=' + window.location.href);
}
На стороне сервера обработчик pixel
будет обрабатывать изображение размером 1x1px, устанавливать для типа содержимого соответствующее значение (например, image/gif
), извлекать строку запроса и регистрировать URL-адрес. В зависимости от вашей серверной технологии, есть много способов реализовать это.