Шаг 9 - Массив закладок и ссылок

В документе html Вы можете делать закладки и ссылки (см. "Шаг 10 - Бросаем якоря"). Закладки создаются просто:

<a name=anc1>
<a name=anc2>
<a name=anc3>
<a name=anc4>

При этом все закладки добавляются в массив anchors, который овечает за них. Размер этого массива, или же просто количество закладок в документе можно получить с помощью свойства length. Например для предыдущего примера следующий скрипт выведет значение 4:

document.writeln(document.anchors.length);

Для чего именно нужен этот массив я не очень понимаю, потому как кроме имени закладки из него получить что-либо сложно %)

document.writeln(document.anchors[0].name);

Выведется значение:

anc1

Куда больше возможностей предоставляет массив links. Это массив ссылок документа. Любая закладка, которая кроме имени name имеет еще и гипер-ссылку href автоматически добавляется и в массив anchors и в массив links.

Для каждого элемента массива links существуют следующие свойства hash, host, hostname, href, pathname, port, protocol, search, target. Давайте для того, чтобы все понять просто попробуем пару ссылок:

<a href=http://www.gilb.com/st1.html#anc1 target=l1>l1</a><br>
<a href=http://www.l1.com:8000/cgi-bin/12.cgi?asd target=l2>l2</a><br>
<a href=ftp://www.l2.com/pub/ target=l3>l3</a><br>
<a href=gopher://www.l2.com?asdf target=l4>l4</a><br>

После этого применим к документу следующий скрипт:

for (i=0;i<document.links.length;i++){
	document.writeln("<dt><b>",document.links[i].href,"</b>");
	document.writeln("<dd>Hash: ",document.links[i].hash);
	document.writeln("<dd>Host: ",document.links[i].host);
	document.writeln("<dd>Hostname: ",document.links[i].hostname);
	document.writeln("<dd>Port: ",document.links[i].port);
	document.writeln("<dd>Protocol: ",document.links[i].protocol);
	document.writeln("<dd>Target: ",document.links[i].target);
	document.writeln("<dd>Pathname: ",document.links[i].pathname);
	document.writeln("<dd>Search: ",document.links[i].search);
};

Результат слишком велик, чтобы его тут разместить %) Размещу наверно наиболее информативный кусок:

http://www.gilb.com/st1.html#anc1 
	Hash: #anc1 
	Host: www.gilb.com:80 
	Hostname: www.gilb.com 
	Port: 80 
	Protocol: http: 
	Target: l1 
	Pathname: st1.html 
	Search: 
http://www.l1.com:8000/cgi-bin/12.cgi?asd 
	Hash: 
	Host: www.l1.com:8000 
	Hostname: www.l1.com 
	Port: 8000 
	Protocol: http: 
	Target: l2 
	Pathname: cgi-bin/12.cgi 
	Search: ?asd 

Как Вы видите эти свойства полностью декодируют содержимое ссылки href. Свойство hash возвращает название закладки в вызываемом документе, которое указывается после #. Свойства host и hostname возвращают название хоста в интернете, при этом к значению свойства host добавляется значение порта, которое может быть получено при помощи свойства port. Надо еще отметить, что значение port меняется в зависимости от значения protocol. Например, для протокола FTP значения этих свойств будут следующими: protocol="ftp:", port="21". Свойство pathname возвращает путь к вызываемому документу. search содержит все, что после знака ?. В target будет название фрейма.

Вот собственно и все про ссылки %)


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Кузин Андрей.