Maison  >  Article  >  interface Web  >  Route de développement mobile HTML5 de Xiaoqiang (26) - Revue JavaScript 1

Route de développement mobile HTML5 de Xiaoqiang (26) - Revue JavaScript 1

黄舟
黄舟original
2017-02-04 14:13:571162parcourir

Je n'ai pas utilisé JavaScript depuis longtemps, et cela me semble un peu inconnu. Récemment, je lisais des informations sur le développement mobile HTML5, et une intuition m'a dit que JavaScript était très important hier et aujourd'hui, et qu'il le sera. encore plus important demain. De nos jours, de nombreux frameworks basés sur JavaScript ont apporté une grande commodité à notre développement, mais pour mieux utiliser ces outils, nous devons avoir une meilleure compréhension de JavaScript, ouvrir les notes précédentes et commencer à réviser.

1. Le rôle de JavaScript

1. Vérification des données

2. Fonctionnement des pages Web (effets dynamiques des pages Web)

3. window

4. L'un des cœurs de la technologie ajax

2 La composition de JavaScript

1. La syntaxe de base des scripts JavaScript, tels que les types de données, les mots-clés, les mots réservés, les opérateurs, les objets et les instructions, etc., n'appartient à aucun navigateur.

La norme ECMAScript définit le contenu de base des scripts JavaScript, qui est le « squelette » des scripts JavaScript. Avec le « squelette », vous pouvez l'étendre, comme DOM (Document Object Model) et BOM (Browser Object Model). Modèle).


Historique : En décembre 1995, Sun Microsystems et Netscape Communications Corporation ont introduit JavaScript. En mars 1996, Netscape Communications a publié Netscape Navigator 2.0 prenant en charge JavaScript. En raison du succès de JavaScript en tant que langage de script côté client pour les pages Web, Microsoft a introduit Internet Explorer 3.0 en août 1996. Ce logiciel prend en charge un « à propos » JScript compatible avec JavaScript.

En novembre 1996, Netscape Communications a soumis JavaScript à l'Association européenne des fabricants d'ordinateurs pour normalisation. La première version d'ECMA-262 a été adoptée par l'organisation Ecma en juin 1997.

ECMAScript est le nom du langage de script standardisé par ECMA-262. JavaScript et JScript sont compatibles avec ECMAScript mais contiennent des fonctionnalités au-delà d'ECMAScript.

2. DOM

DOM est l'abréviation de « Document Object Model », appelé « Document Object Model », et est standardisé par le W3C.

DOM définit l'interface permettant à JavaScript d'exploiter les documents HTML, fournissant des moyens d'accéder aux documents HTML (tels que le corps, le formulaire, le div, la zone de texte, etc.) et les méthodes de fonctionnement.


Route de développement mobile HTML5 de Xiaoqiang (26) - Revue JavaScript 13. HTML DOM

w3c dom est le standard et est apparu relativement tard

html dom n'est pas le standard (le propre de chaque navigateur) et est apparu plus tôt, w3c dom n'est pas encore apparu (dom 0)
De nombreux navigateurs prennent également en charge certains objets
Select
Option
Table
TableRow
TableCell

BOM

BOM est l'abréviation de "Browser Object Model", appelé "Browser Object Model".

BOM définit l'interface permettant à JavaScript de faire fonctionner le navigateur, fournissant des moyens d'accéder à certaines fonctions (telles que la taille de la fenêtre du navigateur, les informations de version, l'historique de navigation, etc.) et les méthodes de fonctionnement.

Malheureusement, BOM n'est qu'une extension d'ECMAScript sans aucune norme pertinente. Le W3C n'a pas standardisé cette partie. Chaque fabricant de navigateur a sa propre implémentation de BOM, ce qui peut être considéré comme la faiblesse de BOM.
Habituellement, les extensions JavaScript spécifiques au navigateur (c'est-à-dire non conformes à la norme W3C) sont considérées comme faisant partie de la nomenclature, notamment :

    Fermer le navigateur mobile et redimensionner la fenêtre du navigateur ; 🎜>
  • Une nouvelle fenêtre de navigateur apparaît
  • Un objet de localisation qui fournit les détails du navigateur
  • Un objet d'ancrage qui fournit des détails sur le document chargé dans la fenêtre du navigateur ;
  • Un objet d'écran qui fournit des détails sur la résolution de l'écran de l'utilisateur
  • Fournir la prise en charge des cookies ;

  • Ajouter la classe ActiveXObject pour étendre la nomenclature et instancier les objets ActiveX via JavaScript.

3. Types de données JavaScript


1. string

booléen

null

non défini

2. Type de données complexe

Array

Fonction

Math

Date

Nombre

Chaîne

RegExp

Erreur

Aguments

Objet

4. Mécanisme de traitement des événements en JavaScript

1 Comment lier le code de traitement des événements

(1) Lier à Sur le HTML. tag

(2) Lier au nœud dom
var obj = document.getElementById(id);

obj .onclick = f1; //Lier au nœud dom


Stocker le code html et le code javascript séparément





L'avantage de cette méthode de liaison est qu'elle peut séparer le code js et le code html, ce qui facilite la maintenance du code
<html>  
    <!--  绑定事件处理代码   -->  
    <head>  
        <script>    
        <!--这部分代码保存到活动对象里面,script里面执行完还没有生成树-->  
            function f1(){  
                alert(&#39;hello&#39;);  
            }  
        </script>  
    </head>     
    <body style="font-size:30px;">  
        <input id="b1" type="button" value="点我吧"/>  
        <script>  
            var obj = document.getElementById(&#39;b1&#39;);  
            obj.onclick = f1; //绑定到dom节点上  
        //好处:可以将js代码和html代码分开  
        </script>  
    </body>  
</html>
Mais l'inconvénient de cette méthode est qu'elle n'est pas pratique pour passer des paramètres et nécessite l'utilisation de fonctions anonymes pour transférer les paramètres

function f1(){  
    alert(&#39;hello&#39;);  
}   
//window.onload表示当整个html文档全部解析完毕,  
//也就是说整个dom树已经生成之后,浏览器会产生一个load事件  
window.onload = function(){  
    var obj = document.getElementById(&#39;b1&#39;);  
    obj.onclick = f1;  
};  
//load事件不是用户参与产生的,是浏览器自己产生的  
//下面事件是用于触发的  
//click  blur  mouseover submit change
(3) Utilisez la propre méthode de liaison de chaque navigateur
<html>  
    <!--  绑定事件处理代码   -->  
    <head>  
        <script src="myjs2.js"></script>  
    </head>     
    <body style="font-size:30px;">  
        <input id="b1" type="button" value="点我吧"/>  
    </body>  
</html>
Il est recommandé d'en utiliser moins en raison de problèmes de compatibilité du navigateur


//如果想传参数可以写一个匿名函数  
  
function f1(info){  
    alert(&#39;hello&#39;+info);  
}   
//window.onload表示当整个html文档全部解析完毕,  
//也就是说整个dom树已经生成之后,浏览器会产生一个load事件  
window.onload = function(){  
    var obj = document.getElementById(&#39;b1&#39;);  
    obj.onclick = function(){  //匿名函数  
        f1(&#39;zs&#39;);  //传参数  
    };  
};  
//load事件不是用户参与产生的,是浏览器自己产生的  
//下面事件是用于触发的  
//click  blur  mouseover submit change
2 , objet événement


(1) Comment obtenir l'objet événement

Cliquez sur le bouton ---> Générer un objet événement ---> >firefox : Vous devez ajouter le paramètre event dans la méthode

Si vous souhaitez être compatible avec IE en même temps, Firefox n'a besoin que d'ajouter le paramètre event dans la méthode

( 2) Le rôle de l'objet événementiel

clientX,clientY获得鼠标点击的坐标

<html>  
    <head>  
        <script>  
            //只能在IE上运行  
            function f1(){ //输出用户点击时鼠标的坐标  
            //window省略不写  
                alert(event.clientX + &#39; &#39; + event.clientY);  
            }  
            //在firefox上面运行,IE也支持  
            function f2(event){  
                alert(event.clientX + &#39; &#39; + event.clientY);  
            }  
        </script>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <a href="javascript:;" onclick="f1();">only ie not firefox</a><br/><br/>  
        <a href="javascript:;" onclick="f2(event);">ie and firefox</a>  
    </body>  
</html>

找到事件源(产生事件的那个对象)


ie: event.srcElement
firefox: event.target

<html>  
    <head>  
        <script>  
            //只能在火狐上运行  
            function f3(e){  
                //通过事件对象找到事件源  
                var obj = e.target; //obj就是那个链接<a>  
                alert(obj.innerHTML);  
            }  
            //只能在IE上面运行  
            function f4(e){  
                var obj = e.srcElement;  
                alert(obj.innerHTML);  
            }  
            //可以在IE和火狐上面运行  
            function f5(e){  
            //js当中任意数据类型都可以转换成true或者false  
                var obj = e.target || e.srcElement;  
                alert(obj.innerHTML);   
            }  
        </script>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <a href="javascript:;" onclick="f5(event);  
        ">get the first resorce</a><br/><br/>  
        <a href="javascript:;" onclick="f5(event);  
        ">get the second resorce</a>  
    </body>  
</html>

3、事件冒泡


当一个事件产生后,浏览器会在该事件的节点上查找有没有相应的事件处理代码,如果有则浏览器调用相应的事件处理代码来处理,处理完成后,该事件会继续向上抛给父节点继续处理如果没有,也会将事件继续向上抛给父节点继续处理

<html>  
    <head>  
        <script>  
            function clickA(){  
                alert(&#39;你点击了连接&#39;);  
            }  
            function clickDiv(){  
                alert(&#39;你点击了Div&#39;);  
            }  
        </script>  
        <style>  
            #d1{  
                width:200px;  
                height:200px;  
                background-color:red;  
            }  
        </style>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <div id="d1" onclick="clickDiv();">  
            <a href="javascript:;" onclick="clickA();">click5</a>  
        </div>  
    </body>  
</html>

如何取消事件冒泡:event.cancelBubble = true;

<html>  
    <head>  
        <script>  
            function clickA(e){  
                alert(&#39;你点击了连接&#39;);  
                e.cancelBubble = true;  
            }  
            function clickDiv(e){  
                alert(&#39;你点击了Div&#39;);  
            }  
        </script>  
        <style>  
            #d1{  
                width:200px;  
                height:200px;  
                background-color:red;  
            }  
        </style>  
    </head>  
    <body style="font-size:30px;font-style:italic;">  
        <div id="d1" onclick="clickDiv(event);">  
            <a href="javascript:;" onclick="clickA(event);">click5</a>  
        </div>  
    </body>  
</html>

以上就是 小强的HTML5移动开发之路(26)—— JavaScript回顾1的内容,更多相关内容请关注PHP中文网(www.php.cn)!


Déclaration:
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