This specification is like no other — it has been processed with you, the humble web developer, in mind.
The focus of this specification is readability and ease of access. Unlike the full HTML Standard, this "developer's edition" removes information that only browser vendors need know. It is automatically produced from the full specification by our build tooling, and thus always in sync with the latest developments in HTML.
To read about its conception, construction, and future, read the original press release, and the blog post about its relaunch.
Finally, feel free to contribute on GitHub to make this edition better for everyone!
Navigator
objectIn certain cases, despite the best efforts of the entire industry, Web browsers have bugs and limitations that Web authors are forced to work around.
This section defines a collection of attributes that can be used to determine, from script, the kind of user agent in use, in order to work around these issues.
Client detection should always be limited to detecting known current versions; future versions and unknown versions should always be assumed to be fully compliant.
navigator
. appCodeName
Returns the string "Mozilla
".
navigator
. appName
Returns the string "Netscape
".
navigator
. appVersion
Returns the version of the browser.
navigator
. platform
Returns the name of the platform.
navigator
. product
Returns the string "Gecko
".
navigator
. productSub
Returns either the string "20030107
", or the string "20100101
".
navigator
. userAgent
Returns the complete `User-Agent
` header.
navigator
. vendor
Returns either the empty string, the string "Apple Computer, Inc.
",
or the string "Google Inc.
".
navigator
. vendorSub
Returns the empty string.
navigator
. language
Returns a language tag representing the user's preferred language.
navigator
. languages
Returns an array of language tags representing the user's preferred languages, with the most preferred language first.
The most preferred language is the one returned by navigator.language
.
A languagechange
event is fired at the
Window
or WorkerGlobalScope
object when the user agent's understanding
of what the user's preferred languages are changes.
registerProtocolHandler()
and registerContentHandler()
methodsThe registerProtocolHandler()
method
allows Web sites to register themselves as possible handlers for particular schemes. For example,
an online telephone messaging service could register itself as a handler of the sms:
scheme, so that if the user clicks on such a link, they are given the
opportunity to use that Web site. Analogously, the registerContentHandler()
method allows
Web sites to register themselves as possible handlers for content in a particular MIME
type. For example, the same online telephone messaging service could register itself as a
handler for text/vcard
files, so that if the user has no native application capable
of handling vCards, their Web browser can instead suggest they use that site to view contact
information stored on vCards that they open. [SMS] [RFC6350]
navigator
. registerProtocolHandler
(scheme, url, title)navigator
. registerContentHandler
(mimeType, url, title)Registers a handler for the given scheme or content type, at the given URL, with the given title.
The string "%s
" in the URL is used as a placeholder for where to put
the URL of the content to be handled.
Throws a "SecurityError
" DOMException
if the user
agent blocks the registration (this might happen if trying to register as a handler for "http",
for instance).
Throws a "SyntaxError
" DOMException
if the "%s
" string is missing in the URL.
In addition to the registration methods, there are also methods for determining if particular handlers have been registered, and for unregistering handlers.
navigator
. isProtocolHandlerRegistered
(scheme, url)navigator
. isContentHandlerRegistered
(mimeType, url)Returns one of the following strings describing the state of the handler given by the arguments:
new
registered
declined
navigator
. unregisterProtocolHandler
(scheme, url)navigator
. unregisterContentHandler
(mimeType, url)Unregisters the handler given by the arguments.
navigator
. cookieEnabled
Returns false if setting a cookie will be ignored, and true otherwise.
navigator
. plugins
. refresh
( [ refresh ] )Updates the lists of supported plugins and MIME types for this page, and reloads the page if the lists have changed.
navigator
. plugins
. length
Returns the number of plugins, represented by Plugin
objects, that the user agent reports.
navigator
. plugins
. item
(index)navigator
. plugins
[index]Returns the specified Plugin
object.
navigator
. plugins
. item
(name)navigator
. plugins
[name]Returns the Plugin
object for the plugin with the given name.
navigator
. mimeTypes
. length
Returns the number of MIME types, represented by MimeType
objects, supported by the plugins that the user agent reports.
navigator
. mimeTypes
. item
(index)navigator
. mimeTypes
[index]Returns the specified MimeType
object.
navigator
. mimeTypes
. item
(name)navigator
. mimeTypes
[name]Returns the MimeType
object for the given MIME type.
name
Returns the plugin's name.
description
Returns the plugin's description.
filename
Returns the plugin library's filename, if applicable on the current platform.
length
Returns the number of MIME types, represented by MimeType
objects, supported by the plugin.
item
(index)Returns the specified MimeType
object.
item
(name)Returns the MimeType
object for the given MIME type.
type
Returns the MIME type.
description
Returns the MIME type's description.
suffixes
Returns the MIME type's typical file extensions, in a comma-separated list.
enabledPlugin
Returns the Plugin
object that implements this MIME type.
navigator
. javaEnabled()
Returns true if there's a plugin that supports the MIME type "application/x-java-vm
".