В компьютере гипертекст фрагмент URI представляет собой строку из символов, которая ссылается к ресурсу, который подчинен другому, первичному ресурсу. Первичный ресурс идентифицируется унифицированным идентификатором ресурса (URI), а идентификатор фрагмента указывает на подчиненный ресурс.
Идентификатор фрагмента, обозначенный хэш-меткой #
, является необязательной последней частью URL для документа. Обычно он используется для идентификации части этого документа. Общий синтаксис указан в RFC 3986. Разделитель хэш-метки в URI не является частью идентификатора фрагмента.
В URIs Знак решетки #
вводит необязательный фрагмент в конце URL-адреса. Общий синтаксис RFC 3986 для URI также допускает необязательную часть запроса , обозначенную вопросительным знаком ?
. В URI с запросом и фрагментом фрагмент следует за запросом. Части запроса зависят от схемы URI и оцениваются сервером - например, http:
поддерживает запросы, в отличие от ftp:
. Фрагменты зависят от документа типа MIME и оцениваются клиентом (веб-браузер ). Клиенты не должны отправлять фрагменты URI на серверы при получении документа, и без помощи локального приложения (см. Ниже) фрагменты не участвуют в HTTP перенаправлениях.
Окончание URI with #
разрешено общим синтаксисом и является разновидностью пустого фрагмента. В типах документов MIME, таких как text / html
или любом типе XML, пустые идентификаторы, соответствующие этой синтаксически допустимой конструкции, не разрешены. Веб-браузеры обычно отображают верхнюю часть документа для пустого фрагмента.
Идентификатор фрагмента функционирует иначе, чем остальная часть URI: его обработка осуществляется исключительно на стороне клиента без участия веб-сервера, хотя сервер обычно помогает для определения типа MIME, а тип MIME определяет обработку фрагментов. Когда агент (например, веб-браузер) запрашивает веб-ресурс с веб-сервера, агент отправляет URI на сервер, но не отправляет фрагмент. Вместо этого агент ожидает, пока сервер отправит ресурс, а затем агент обрабатывает ресурс в соответствии с типом документа и значением фрагмента.
текст / html
страницы, такие как http://www.example.org/foo.html#bar
, фрагмент относится к элементу с id = "bar"
. #: ~: text = foo
заставит браузер искать foo
, выделить соответствующий текст и перейти к нему. Помимо начала и конца, фрагмент также может указывать контекст: текст, который должен предшествовать или следовать за foo
, но не будет выделен (пример, который ищет «видение», которому предшествует «ночь» ).:target
CSS ; Википедия использует его для выделения выбранной ссылки. В частности, CSS display: block
может использоваться для отображения содержимого только в том случае, если он является целью, и в противном случае скрыт display: none
.name
(разрешенного только для некоторых элементов) аналогичная цель в устаревших браузерах. Если присутствует name
и id
, должны быть идентичны.xml: id
или аналогичному id
, следуют за синтаксисом Name
и начинаются с буквы, подчеркивания или двоеточия. В частности, они не могут начинаться с цифрой или дефисом. xml: id
- один из немногих общих атрибутов XML, e.g., xml: lang
, которые можно использовать без явного объявления пространства имен. В XHTML необходимо использовать id
, потому что XHTML был указан до того, как xml: id
существовал.http://www.example.org/foo.xml#xpointer(//Rube)
относится ко всем элементам XML с именем "Rube" в документе, идентифицированном URI http://www.example.org/foo.xml. Процессор XPointer, учитывая этот URI, получит представление документа (например, запросив его из Интернета) и вернет представление элементов документа «Rube».http://www.w3.org/2004/02/skos/core#broader
определяет понятие «более широкий» в словаре SKOS Core, но не относится к определенной части ресурс, обозначенный как http://www.w3.org/2004/02/skos/core
, полный RDF-файл, в котором объявлена семантика этого конкретного понятия вместе с другими понятиями из того же словаря.text/plain
RFC 5147 определяет идентификатор фрагмента для позиций и диапазонов символов и строк в документе, используя ключевые слова «char
» и «line
». Поддержка браузера отсутствует. В следующем примере идентифицируются строки с 11 по 20 текстового документа: http://example.com/document.txt#line=10,20
RFC 7111 определяет идентификатор фрагмента в качестве селектора для строк, столбцов и ячеек с помощью ключевых слов «row
», «col
» и «cell
", например: http://example.com/data.csv#row=4
- выбирает 4-ю строку.http://example.com/data.csv#col = 2
- выбирает 2-й столбец.http://example.com/data.csv#row=5-7
- выбирает три последовательные строки, начиная с 5-й строки.http: // example.com/data.csv#row=5-*
– выбирает все строки, начинающиеся с 5-й строки.http://example.com/data.csv#cell=4,1-6,2
- выбирает область, которая начинается в 4-й строке и 1-м столбце и заканчивается 6-й строкой и 2-м столбцом.t
и xywh
. Следовательно, можно использовать следующие URI мультимедийных фрагментов в атрибуте src
элемента audio
или video
HTML5 : http : //example.com/foo.mp4#t=10,20
http://example.com/bar.webm#t=40,80xywh=160,120,320,240
# 01div class="ht"5m30s
, чтобы начать воспроизведение в указанной позиции, а YouTube использует аналогичный код, такой как # t = 3m25s
.location.hash
- обратите внимание, что Javascript также можно использовать с другими типами документов. С появлением AJAX некоторые веб-сайты используют идентификаторы фрагментов для имитации поведения кнопки «Назад» в браузерах для изменений страниц, которые не требуют перезагрузки, или для имитации подстраниц. application/pdf
программы просмотра PDF распознают ряд идентификаторов фрагментов. Например, URL-адрес, заканчивающийся на .pdf # page = 35
, заставит большинство читателей открыть PDF-файл и перейти к странице 35. Возможны несколько других параметров, включая # nameddest =
( аналогично привязкам HTML), # search = "word1 word2"
, # zoom =
и т. д. Несколько параметров можно комбинировать с амперсандами: http://example.org /doc.pdf#view=fitbnameddest=Chapter3
.viewBox ()
, preserveAspectRatio ()
, и transform ()
.Было сделано несколько предложений для идентификаторов фрагментов для использования с текстовыми документами (которые не могут хранить метаданные привязки) или для ссылки на места в документах HTML, в которых автор не использовал теги привязки:
https://pypi.python.org... zodbbrowser-0.3.1.tar.gz # md5 = 38dc89f294b24691d3f0d893ed3c119c
!
. Он использовался в устаревшем подходе для индексации динамических одностраничных приложений. Восклицательный знак недопустим в идентификаторах HTML4 (но не в HTML5), XHTML и XML, что дает определенную степень отделения от этой функциональности. http://example.com/page?query#!state
history.pushState ()
.#! s! условия поиска
. Добавление числа после s (#! S10!
) указывает, что браузер должен искать n-е вхождение условия поиска. Отрицательное число (#! S-3!
) запускает поиск в обратном направлении от конца документа. Доступен сценарий Greasemonkey для добавления этой функциональности в совместимые браузеры. http://example.com/index.html#!s3! поисковые термины
match
». Они также описывают реализацию прототипа как расширение для браузера Firefox. Например, следующий код может найти текст «RFC» без учета регистра в любом месте документа: http://example.com/document.txt#match=[rR ][fFestive[cC]
слова
"является первым предложением в этой схеме. В следующем примере выполняется поиск в документе первого вхождения строки «некоторый контекст для условия поиска», а затем выделение слов «термин поиска»: http://example.com/index.html#:words: some-context-for-a- (search-term)
# FWS + C
, где F - длина первого слова (до пяти символов), W - само первое слово, S - длина выделенного текста, а C - 32-битная CRC выделенного текста. Они реализовали вариант этой схемы как расширение для браузера Firefox, используя форму # LFWS + C
, где L - длина самого фрагмента в двух шестнадцатеричных цифрах. Ссылка на слово «Фрагмент» с использованием реализованного варианта даст: http://example.com/index.html#115Fragm8+-52f89c4c