navigator.appName
Safari、Firefox、および Chrome で「Netscape」が返されるのはなぜですか?
彼らは古いブラウザの Netscape と何の関係があるのでしょうか? DOM0が原因でしょうか?
navigator.appName
Safari、Firefox、および Chrome で「Netscape」が返されるのはなぜですか?
彼らは古いブラウザの Netscape と何の関係があるのでしょうか? DOM0が原因でしょうか?
はい、それは互換性の問題のためであり、依存するものではありません。
MDNは次のように述べています。
ここでMozillaのドキュメントを参照してください。
ところで; そのため、これをブラウザーの検出に使用することはできません。ブラウザの検出は悪い習慣であり、可能な限り避けるべきです。代わりに特徴検出を行います。しかし、誰かがこれを主張するなら; userAgent
代わりにプロパティを使用する必要があります。
更新 1 :互換性の変更によると。IE11は、HTML5 標準を反映し、他のブラウザーの動作と一致するように、プロパティも返すようになりました。ここで文字列の変更も参照してください...特徴検出の詳細についてはこちら..."Netscape"
navigator.appName
userAgent
更新 2 : Microsoft Edge"Netscape"
もfor を返しますnavigator.appName
。
Johnny Stenback の投稿に基づく:
これは何年も前に mozilla ニュースグループで議論され、navigator.appName は mozilla でも 'Netscape' を返すべきであると決定されました。これは、ブラウザ スニッフィング コードを使用する Web 上のすべてのページでこれを変更する場合 (これは非常に重要な部分です)コンテンツ開発者が考える限り、mozilla == netscape == mozilla であるため、それは起こりませんし、そうする理由もありません。
ソースはこちら。
IE11 以降では、navigator.appName を呼び出したときに Explorer も "Netscape" を返すようになりました。
更新 この回答は今ではかなり古くなっていますが、上記のステートメントへのリンクは次のとおりです。 /bg182625(v=vs.85)?redirectedfrom=MSDN#legacy-api-additions-changes-and-removals