Maison > interface Web > js tutoriel > Explication détaillée de l'exemple de code d'objet de navigateur JavaScript

Explication détaillée de l'exemple de code d'objet de navigateur JavaScript

怪我咯
Libérer: 2017-07-07 15:11:17
original
1160 Les gens l'ont consulté

JavaScript peut obtenir de nombreux objets fournis par le navigateur et effectuer des opérations. Cet article vous présentera les connaissances pertinentes sur les objets du navigateur en JavaScript. Jetons un coup d'œil

JavaScript peut obtenir de nombreux objets fournis par le navigateur et les exploiter.

window

L'objet window agit non seulement comme une portée globale, mais représente également la fenêtre du navigateur.

L'objet window a les propriétés innerWidth et innerHeight, qui peuvent obtenir la largeur et la hauteur internes de la fenêtre du navigateur. La largeur et la hauteur internes font référence à la largeur et à la hauteur nettes utilisées pour afficher la page Web après avoir supprimé les éléments réservés tels que les barres de menus, les barres d'outils et les bordures.

Compatibilité : IE<=8 n'est pas pris en charge.

// 可以调整浏览器窗口大小试试:
alert(&#39;window inner size: &#39; + window.innerWidth + &#39; x &#39; + window.innerHeight);
Copier après la connexion

En conséquence, il existe également un attribut externalWidth et externalHeight, qui peut obtenir toute la largeur et la hauteur de la fenêtre du navigateur.

navigator

objet navigateur représente les informations du navigateur. Les attributs les plus couramment utilisés incluent :

  • navigator.appName : nom du navigateur

  • navigator.appVersion : version du navigateur ; 🎜>

    navigator.langue : La langue définie par le navigateur
  • navigator.platform : Type de système d'exploitation
  • navigator.userAgent : chaîne User-Agent définie par le navigateur.
  • Veuillez noter que les informations du navigateur peuvent être facilement modifiées par l'utilisateur, donc la valeur lue par JavaScript peut ne pas être nécessairement correcte. Afin d'écrire différents codes pour différents navigateurs, de nombreux débutants aiment utiliser if pour déterminer la version du navigateur, par exemple :
alert(&#39;appName = &#39; + navigator.appName + &#39;\n&#39; +
   &#39;appVersion = &#39; + navigator.appVersion + &#39;\n&#39; +
   &#39;language = &#39; + navigator.language + &#39;\n&#39; +
   &#39;platform = &#39; + navigator.platform + &#39;\n&#39; +
   &#39;userAgent = &#39; + navigator.userAgent);
Copier après la connexion

Cependant, cela peut non seulement rendre le jugement inexact, mais également le rendre. difficile de maintenir le code. La méthode correcte consiste à utiliser pleinement la fonctionnalité JavaScript permettant de renvoyer un élément indéfini pour les propriétés inexistantes et à utiliser directement l'opérateur de court-circuit || pour calculer :

var width;
if (getIEVersion(navigator.userAgent) < 9) {
  width = document.body.clientWidth;
} else {
  width = window.innerWidth;
}
Copier après la connexion

var width = window.innerWidth || document.body.clientWidth;
Copier après la connexion
écran


objet d'écran

représente les informations d'écran. Les attributs couramment utilisés sont :


screen.width. : largeur de l'écran, en pixels Unité
  • screen.height : Hauteur de l'écran, en pixels
  • screen.colorDepth : Renvoie la nombre de chiffres de couleur, tels que 8, 16, 24.
alert(&#39;Screen size = &#39; + screen.width + &#39; x &#39; + screen.height);
Copier après la connexion
location

objet location

représente les informations URL de la page actuelle . Par exemple, une URL complète :

http://www.example.com:8080/path/index.html?a=1&b=2#TOP

peut être obtenue avec localisation. href. Pour obtenir la valeur de chaque partie de l'URL, vous pouvez écrire :

Pour charger une nouvelle page, vous pouvez appeler location.assign(). Si vous souhaitez recharger la page en cours, il est très pratique d'appeler la méthode location.reload().

location.protocol; // &#39;http&#39;
location.host; // &#39;www.example.com&#39;
location.port; // &#39;8080&#39;
location.pathname; // &#39;/path/index.html&#39;
location.search; // &#39;?a=1&b=2&#39;
location.hash; // &#39;TOP&#39;
Copier après la connexion

if (confirm(&#39;重新加载当前页&#39; + location.href + &#39;?&#39;)) {
  location.reload();
} else {
  location.assign(&#39;/discuss&#39;); // 设置一个新的URL地址
}
Copier après la connexion
document

L'objet document représente la page actuelle. Étant donné que HTML est représenté sous forme d'arborescence sous forme de DOM dans le navigateur, l'objet document est le nœud racine de l'ensemble de l'arborescence DOM.

L'attribut title du document est lu à partir de xxx dans le document HTML, mais il peut être modifié dynamiquement :

Veuillez respecter le titre du changement de fenêtre du navigateur.

document.title = &#39;努力学习JavaScript!&#39;;
Copier après la connexion

Pour trouver un nœud dans l'arborescence DOM, vous devez commencer la recherche à partir de l'objet document. Les recherches les plus couramment utilisées sont basées sur l'ID et le nom de la balise.

Nous préparons d'abord les données HTML :

Utilisez getElementById() et

getElementsByTagName
<dl id="drink-menu" style="border:solid 1px #ccc;padding:6px;">
  <dt>摩卡</dt>
  <dd>热摩卡咖啡</dd>
  <dt>酸奶</dt>
  <dd>北京老酸奶</dd>
  <dt>果汁</dt>
  <dd>鲜榨苹果汁</dd>
</dl>
Copier après la connexion
() fournies par l'objet document pour obtenir un nœud DOM en Identifiez et obtenez un ensemble de nœuds DOM en fonction du nom du tag :

Moka

Café moka chaud
var menu = document.getElementById(&#39;drink-menu&#39;);
var drinks = document.getElementsByTagName(&#39;dt&#39;);
var i, s, menu, drinks;

menu = document.getElementById(&#39;drink-menu&#39;);
menu.tagName; // &#39;DL&#39;

drinks = document.getElementsByTagName(&#39;dt&#39;);
s = &#39;提供的饮料有:&#39;;
for (i=0; i<drinks.length; i++) {
  s = s + drinks[i].innerHTML + &#39;,&#39;;
}
alert(s);
Copier après la connexion
Yaourt

Yaourt vieux de Pékin
Jus
Pomme fraîchement pressée juice


L'objet document possède également un attribut cookie, qui peut obtenir le cookie de la page actuelle.

Le cookie est un identifiant clé-valeur envoyé par le serveur. Parce que le protocole HTTP est sans état, mais si le serveur veut distinguer quel utilisateur a envoyé la demande, il peut utiliser Cookie pour le distinguer. Lorsqu'un utilisateur se connecte avec succès, le serveur envoie un cookie au navigateur, tel que user=ABC123XYZ (chaîne cryptée)... Après cela, lorsque le navigateur visite le site Web, il attachera ce cookie à l'en-tête de la demande, et le Le serveur utilisera le cookie en fonction du cookie permettant de distinguer les utilisateurs.

Les cookies peuvent également stocker certains paramètres du site Internet, tels que la langue affichée sur la page, etc.

JavaScript peut lire le cookie de la page actuelle via document.cookie :

Étant donné que JavaScript peut lire le cookie de la page et que les informations de connexion de l'utilisateur sont généralement également stockées dans le cookie, Cela crée un risque de sécurité énorme, car il est autorisé à introduire du code JavaScript tiers dans les pages HTML :

document.cookie; // &#39;v=123; remember=true; prefer=zh&#39;
Copier après la connexion

S'il y a du code malveillant dans le JavaScript tiers introduit, www. Le site Web .com obtiendra directement les informations de

connexion utilisateur
<!-- 当前页面在wwwexample.com -->
<html>
  <head>
    <script src="http://www.foo.com/jquery.js"></script>
  </head>
  ...
</html>
Copier après la connexion
du site Web www.example.com.

Afin de résoudre ce problème, le serveur peut utiliser httpOnly lors de la configuration des cookies. Les cookies définis sur httpOnly ne seront pas lus par JavaScript. Ce comportement est implémenté par le navigateur. Tous les navigateurs grand public prennent en charge l'option httpOnly et IE la prend en charge à partir de IE6 SP1.

Pour garantir la sécurité, le serveur doit toujours insister pour utiliser httpOnly lors de la configuration des cookies.

historique

objet historique enregistre l'historique du navigateur JavaScript peut rappeler() de l'objet historique. ou forward (), ce qui équivaut à ce que l'utilisateur clique sur le bouton « précédent » ou « suivant » du navigateur.

Cet objet est un objet hérité historique. Pour les pages Web modernes, en raison de l'utilisation intensive d'AJAX et de l'interaction entre les pages, appeler simplement et grossièrement history.back() peut mettre les utilisateurs très en colère.

Lorsque les novices commencent à concevoir des pages Web, ils aiment appeler history.back() lorsque la page de connexion est connectée avec succès, en essayant de revenir à la page avant la connexion. C’est une mauvaise approche.

Vous ne devez en aucun cas utiliser l'objet historique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal