navigator

Navigator オブジェクト (DOM)

仕様書

意味

[55] Navigator オブジェクトは、 利用者エージェントの識別と状態を表すと共に、 プロトコル取り扱い器内容取り扱い器を登録する API を提供するものです >>13

[58] 文書環境ワーカー環境Navigator オブジェクトWorkerNavigator オブジェクトが存在します。 基本的には singleton で、環境ごとに1つ存在します。 文書環境ワーカー環境では提供される API が微妙に違っています。

navigator 属性

[56] Window インターフェイスnavigator IDL属性は、 Navigator オブジェクトを返さなければなりません >>13

[57] この Navigator オブジェクトは、 Window の作成時に新たに作成されます。 値が変化するのは、 document.open の時のみです。

Navigator オブジェクトのメンバー

[4] Results for navigator ( 版) http://suika.fam.cx/gate/test-results/list/enum-navigator/all をご覧ください。

[3]

[12] 次のインターフェイス (いずれも NoInterfaceObject) は、Navigator オブジェクト実装されます。

状態

[65]

最上位閲覧文脈
vibrate で参照されます。 関連大域オブジェクト最上位閲覧文脈と解するべきでしょうか。
ServiceWorkerContainer
navigator.serviceWorker の値です。

処理

作成

[67] 作成は、次のようにしなければなりません

  1. [68] 文脈オブジェクトServiceWorkerContainer を、新しい ServiceWorkerContainer オブジェクトに設定します >>66
    [69] ServiceWorkerContainer
    サービスワーカークライアント
    文脈オブジェクト関連設定群オブジェクト

歴史

誕生

[15] NN2 (JavaScript 1.0) で導入されました。

[37] JavaScript 1.0 で次のものが追加されました。

[38] taintEnabledJavaScript 1.1 で追加されました。

[39] platformJavaScript 1.2 で追加されました。

[14] WinIE 3 以上が対応しています。 IEwindow.clientInformation として実装しています。

[18] この当時から window.navigator も実装されていたのかどうか?
[2] navigatorNetscape Navigator を想起させる (由来する?) ことを忌避したのでしょうか。

標準化

[19] Navigator オブジェクトW3C からは完全に無視されていました。

[20] 2005年9月1日から2006年1月1日までの間に、 WHATWG Web Applications 1.0 >>21 (現 HTML Standard) に window.navigatornavigator.onLine が追加されました。これが Navigator の標準化のはじまりでした。 NN2 から実に10年が経過していました。

[22] この時 window.navigator が定義されていましたが、 IEwindow.clientInformation も実装していることがコメントとして記述されていました。 またインターフェイス名は ClientInformation とされていました。

[24] その後2008年になって、 Navigator オブジェクトWebブラウザー情報に関する諸属性HTML5 (旧 Web Applications 1.0、 現 HTML Standard) に追加されました >>23インターフェイス名は、 この時 Navigator に改められました。

[5] Web Applications 1.0 r5834 Split the Navigator IDLs to make the various places it's mentioned easier to understand. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=5833&to=5834

[26] その後ワーカーでも利用可能とするため、 WorkerNavigator インターフェイスが追加されています。ワーカー環境WorkerNavigator文書環境Navigator とでは、晒されているメンバーが異なります。

[6] [whatwg] Proposal for a web application descriptor ( ( 版)) http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-July/032631.html

[7] IRC logs: freenode / #whatwg / 20130115 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20130115#l-49

[8] IRC logs: freenode / #whatwg / 20130225 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20130225#l-398

[10] IRC logs: freenode / #whatwg / 20150126 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20150126#l-278

# [13:54] <Ms2ger> Hm, Presto had navigator.appMinorVersion?

# [14:15] <zcorpan_> seems so

# [14:20] <zcorpan_> also browserLanguage, userLanguage

# [14:21] <Ms2ger> browserLanguage only if navigator.appName == "Microsoft Internet Explorer"

# [14:22] <zcorpan_> looks like both of those have some usage on github

# [14:24] <Ms2ger> return (navigator.browserLanguage || navigator.language || navigator.userLanguage).substr(0,2)

# [14:24] <zcorpan_> "navigator.language" 138,088 "navigator.userLanguage" 51,830 "navigator.browserLanguage" 14,089

# [14:24] <zcorpan_> "navigator.languages" 991

[27] HTML5 以後に追加された、主に外部装置からの入出力に関わる諸拡張 API は、 Navigator に追加されることが慣例となっています。 装置に依存して利用できるかもしれないしできないかもしれないことが Navigator オブジェクト上の既存のメンバーの性質と似ていること、 大域オブジェクトと違ってスクリプト定義の変数や関数と衝突する虞がないことなどの理由があるのでしょう。 しかし統括的な設計者もなく無秩序に開発が進められ、標準不在の標準化が進んでいる(謎)感は否めません (Web 技術は全体的にそんなものですが...)。

[41] Web Applications 1.0 r7747 Needed for compatibility. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7746&to=7747

[42] リークしたIE11の情報からいろいろ邪推する - fragmentary ( ( 版)) http://myakura.hatenablog.com/entry/2013/04/04/195122

[43] Web Applications 1.0 r8038 Spec navigator.appCodeName (and respec navigator.product) constant(s) ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8037&to=8038

[36] Bug 27786 – Specify navigator.vendor as the empty string ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=27786

[46] Define navigator.vendor · whatwg/html@6feb33c ( 版) https://github.com/whatwg/html/commit/6feb33c46552803bf857ff846a8b349bad1bbb48

[47] Restrict the allowed return values for navigator.vendor · whatwg/html@6b75ea5 ( 版) https://github.com/whatwg/html/commit/6b75ea51c48ede9e0ea79b6075a1ea9a543b9219

[44] Require navigator.productSub to be either "20030107" or "20100101" · whatwg/html@eed419a ( 版) https://github.com/whatwg/html/commit/eed419aeba3cfab6868de2597b321e9ab45a332c

[45] 27954 – navigator.productSub ( 版) https://www.w3.org/Bugs/Public/show_bug.cgi?id=27954

[49] Web Applications 1.0 r8885 navigator.vendorSub constant ( 版) https://html5.org/r/8885

[28] Expose some NavigatorID members only on Window · whatwg/html@1b1ab95 ( 版) https://github.com/whatwg/html/commit/1b1ab957814561d1e819a8ea4f03d5fd7f5a050e

[40] less - iPhone iPad iPod判別方法 ( ( 版)) http://less.carbonfairy.org/post/1119215328/iphone-ipad-ipod

[50] Web Applications 1.0 r8039 navigator.taintEnabled() ( ( 版)) http://html5.org/tools/web-apps-tracker?from=8038&to=8039

[51] 679971 – remove Navigator.taintEnabled() ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=679971

[52] Introduction ( 版) http://web.archive.org/web/20010414031504/http://developer.netscape.com/docs/manuals/communicator/jsguide/intro.htm#1000788

For additional power and functionality, scripts can now gain access to normally restricted information. This is achieved through signed scripts that request expanded privileges. This new functionality provides greater security than data tainting. Data tainting has been removed from JavaScript 1.2.

[53] 22555 – navigator.taintEnabled() ( 版) https://www.w3.org/Bugs/Public/show_bug.cgi?id=22555

[54] Add "navigator compatibility mode" and use it for vendor/taintEnabled() · whatwg/html@81f1c7b ( 版) https://github.com/whatwg/html/commit/81f1c7bf8fba31164136e2845d3432c3045f2eef

[48] Farewell, Mellblom Browsernator · whatwg/html@5f3a60c ( 版) https://github.com/whatwg/html/commit/5f3a60ccf25fc465f9b4e0269676142468c6cd2e

[60] 30067 – OSCPU User Agent field needs js exposure ( ( 版)) https://bugzilla.mozilla.org/show_bug.cgi?id=30067

[59] Add navigator.oscpu in Gecko compatability mode · whatwg/html@b46dae7 ( 版) https://github.com/whatwg/html/commit/b46dae73cde338737baa917102e93352036eeff6

[61] UC mobile phone browser (U3 kernel) related documentation ( ()) http://www.programering.com/a/MDNxAjMwATU.html

1 close the default gesture

Usage:

1 navigator.control.gesture(false);

Personal recommendation method:

1 try {

2 navigator.control.gesture(false);

3 } catch (e) {

4 // ...

5 }

The closure of 2 long press the pop-up menu

Usage:

1 navigator.control.longpressMenu(false);

[62] Remove XMLDocument.prototype.load by domenic · Pull Request #1478 · whatwg/html () https://github.com/whatwg/html/pull/1478

[63] Remove XMLDocument.prototype.load (domenic著, ) https://github.com/whatwg/html/commit/523f7a8773d2ab8a1eb0da6510651e8c5d2a7531

[64] Expose navigator.appCodeName and navigator.product in Worker (foolip著, ) https://github.com/whatwg/html/commit/d57fa7d28647ba4268b7b1ec62ada4bd5a078d67

[70] Changes around navigator.webdriver (shekyan著, ) https://github.com/w3c/webdriver/commit/96a38f2415aa59bbe370aaafb451b01b0dccfe39

[71] Changes around navigator.webdriver by shekyan · Pull Request #948 · w3c/webdriver () https://github.com/w3c/webdriver/pull/948

[72] Remove registerContentHandler() and several friends (annevk著, ) https://github.com/whatwg/html/commit/b143dbc2d16f3473fcadee377d838070718549d3

[29] Use Web IDL's new-ish interface mixins concept (romandev著, ) https://github.com/whatwg/html/commit/c8867a179c21134021dc3435e98c1b9c4542d794

[30] Use interface mixins instead of [NoInterfaceObject] (romandev著, ) https://github.com/whatwg/storage/commit/37030a22b727d3039d333334a0124cf21b96314b

[31] Update WebIDL definition(s) to use new mixin syntax · Issue #53 · whatwg/storage () https://github.com/whatwg/storage/issues/53

[32] Use `interface mixins` instead of `[NoInterfaceObject]` by romandev · Pull Request #54 · whatwg/storage () https://github.com/whatwg/storage/pull/54

[33] Replace NavigatorUserMedia mixin with partial interface. (jan-ivar著, ) https://github.com/w3c/mediacapture-main/commit/0128390a211094284d500558881ca574b0b1ffef

[34] Replace NavigatorUserMedia mixin with partial interface. by jan-ivar · Pull Request #509 · w3c/mediacapture-main () https://github.com/w3c/mediacapture-main/pull/509

[35] Introduce Navigator and WorkerNavigator partial interfaces (#53) (@marcoscaceres著, ) https://github.com/WICG/serial/commit/12f72a26effca9fc93fa47f087a61f924191007f

[73] Introduce Navigator and WorkerNavigator partial interfaces by reillyeon · Pull Request #53 · WICG/serial () https://github.com/WICG/serial/pull/53

[74] Update partial interface (mixin) NavigatorID (foolip著, ) https://github.com/whatwg/html/commit/c8f0426596ad6bba51cf3de411a127a52267ac77

[75] Update partial interface (mixin) NavigatorID by foolip · Pull Request #4309 · whatwg/html () https://github.com/whatwg/html/pull/4309