In computer hypertext, a fragment identifier is a short string of characters that refers to a resource that is subordinate to another, primary resource. The primary resource is identified by a Uniform Resource Identifier (URI), and the fragment identifier points to the subordinate resource. Typically, the fragment identifier is appended to the Uniform Resource Locator (URL — a type of URI) for a hypertext document and is meant to identify a portion of that document.
A fragment identifier is defined by RFC 3986 as an optional
component of a URI reference, and it must conform to a
certain syntax. The syntax requires that the fragment identifier be
separated from the rest of the URI reference by a #
(number sign)
character. The separator is not considered part of the fragment
identifier.
Contents |
http://www.foo.org/foo.html#bar
refers to the element with the id attribute that has
the value bar (i.e., id="bar") in the
document identified by the URI
http://www.foo.org/foo.html, which is typically the
location from which the document would be obtained via the
Internet. The deprecated name attribute can also be
used for this purpose in the same manner.
:target CSS pseudoclass; Wikipedia uses this to highlight the selected
reference.#01h25m30s to start playing at the specified
position,[2] and YouTube uses similar code such
as #t=3m25s.[3].pdf#page=35 will cause
Adobe Reader to open the PDF and scroll to page 35. Several other
parameters are possible, including #namedest= (similar
to HTML anchors), #search="word1 word2",
#zoom=, etc. Multiple parameters can be combined with
ampersands. For example:
http://example.org/doc.pdf#view=fitb&nameddest=Chapter3.[4]http://www.foo.org/foo.xml#xpointer(//Rube)
refers to all XML elements named "Rube" in the document identified
by the URI http://www.foo.org/foo.xml. An XPointer processor, given
that URI, would obtain a representation of the document (such as by
requesting it from the Internet) and would return a representation
of the document's "Rube" elements.http://www.w3.org/2004/02/skos/core#broader
identifies the concept "broader" in SKOS Core vocabulary, but it
does not refer to a specific part of the resource identified by
http://www.w3.org/2004/02/skos/core, a complete RDF
file in which semantics of this specific concept is declared, along
with other concepts in the same vocabulary.http://pypi.python.org ...
zodbbrowser-0.3.1.tar.gz#md5=38dc89f294b24691d3f0d893ed3c119cSeveral proposals have been made for fragment identifiers for use with plain text documents (which cannot store anchor metadata), or to refer to locations within HTML documents in which the author has not used anchor tags:
char" and "line".[6] This
example identifies lines 11 through 20 of a text document, for
instance:
http://example.com/document.txt#line=10,20match".[7] For
example, the following would find the case-insensitive text "RFC"
anywhere in the document:
http://example.com/document.txt#match=[rR][fF][cC]words" is the first proposal in this scheme.[8] The
following example would search a document for the first occurrence
of the string "some context for a search term" and then highlight
the words "search term":
http://example.com/index.html#:words:some-context-for-a-(search-term)#!s!search terms. The exclamation point is illegal in anchor
tags, ensuring separation from that functionality. Adding a number
after the s (#!s10!) indicates that the browser should
search for the nth occurrence of the search term. A
negative number (#!s-3!) starts searching backwards
from the end of the document. A Greasemonkey script is available to add
this functionality to compatible browsers.[9]
http://example.com/index.html#!s3!search
termshttp://example.com/page?query#!stateThe fragment identifier functions differently than the rest of the URI: namely, its processing is exclusively client-side with no participation from the server. When an agent (such as a Web browser) requests a resource from a Web server, the agent sends the URI to the server, but does not send the fragment. Instead, the agent waits for the server to send the resource, and then the agent processes the resource according to the fragment value. In the most common case, the agent scrolls a Web page down to the anchor element which has an attribute string equal to the fragment value. Other client behaviors are possible.
As a consequence, in some circumstances of URL redirection
or display of intermediate pages (e.g., login
screens) by the server, the browser may not be able to apply the
fragment to the resource it ultimately receives from the server.
This can be remedied by replacing # in the URL to be
redirected with %23, the percent-encoded value of
#. Also, applications running on the server do not
normally receive the fragment value with the rest of the URI, and
are thus unable to take it into account when processing a request.
In JavaScript, the
fragment identifier of the current page can be accessed in the
"hash" property: location.hash
|
|