Pourquoi JavaScript navigator.appName renvoie Netscape pour Safari, Firefox et Chrome?

Pourquoi navigator.appName renvoie "Netscape" pour Safari, Firefox et Chrome?

Que doivent-ils faire avec l'ancien navigateur Netscape? Cela pourrait-il être à cause de DOM0?

Oui et c'est pour les problèmes de compatibilité et ne pas être invoqué.
MDN dit: "Cela était à l'origine partie de DOM niveau 0, mais a été inclus dans la spécification HTML5".

Voir la documentation de Mozilla ici .

BTW; C'est pourquoi cela ne peut pas être utilisé pour la détection du navigateur. La détection du navigateur est une mauvaise pratique et vous devez toujours l'éviter dans la mesure du possible. Effectuez une fonction de détection à la place. Mais si quelqu'un insiste sur cela; Ils devraient utiliser la propriété userAgent place.

MISE À JOUR 1 : Selon les modifications de compatibilité ; IE11 renvoie maintenant "Netscape" pour la propriété navigator.appName , pour refléter la norme HTML5 et pour associer le comportement d'autres navigateurs. Consultez également les modifications dans la chaîne userAgent ici … Plus d'informations sur la détection des fonctionnalités ici …

MISE À JOUR 2 : Microsoft Edge renvoie également "Netscape" pour navigator.appName .

Basé sur l'article de Johnny Stenback:

Cela a été débattu sur les groupes de discussion Mozilla il y a quelque temps et il a été décidé que navigator.appName devrait retourner 'Netscape' même dans mozilla car si cela devait être changé chaque page sur le Web qui utilise un code de sniffing de navigateur (et c'est une partie HUGE Du Web actuel) aurait besoin de reconnaître mozilla, et cela n'arrivera pas et il n'y a aucune raison de le faire non plus puisque mozilla == netscape == mozilla en ce qui concerne les développeurs de contenu.

Source ici .

À partir de IE11, Explorer va maintenant retourner "Netscape" lors de l'appelant navigator.appName;