zoukankan      html  css  js  c++  java
  • BOM、DOM学习笔记——JavaScript

    1.BOM的概述
          browser object modal :浏览器对象模型。
          浏览器对象:window对象。
            Window 对象会在 <body> 或 <frameset> 每次出现时被自动创建。

    2. window的属性
         innerHeight:
         innerWidth:  IE不支持
              通用写法:document.body.clientWidth
                         document.body.clientHeight
         self :等同于window对象
         parent:是打开窗口的父窗口对象
         opener:是打开窗口的父窗口对象。
                2种情况下使用opener:
                       1.使用winodw.open()方法打开的页面
                       2.超链(里面的target属性要设置成_blank)
                2种情况下使用parent:
                       1.iframe 框架
                       2.frame 框架
         frames[]: 数组类型,代表子窗口的window对象的集合,可以通过frames[索引]拿到子窗口的window对象。
            示例:父子窗口相互传参.
         
        open方法,是打开一个页面.


        对话框:
             1)消息框 alert() ;
             2)确认框 confirm() ;
             3)输入框 prompt() ; (了解)

        定时器:
           setTimeout ,setInterval
             定时器: 1.setTimeout() :只会调用1次
                      2.setInterval() :每隔一段时间调用1次
     
    3. history对象
         a.  forward()前进
         b.  back() 后退
         c.  go(n) 正数是前进,负数是后退.

    4. location对象。
            1.href 属性: 是指要连接到其他的URL
                            写法一、window.location.href='demo_window对象的close方法.html' ;
                            写法二、window.location='demo_window对象的close方法.html' ;

            2.reload方法: 刷新
                写法: window.location.reload() ;

    5.常用事件
        鼠标移动事件
            onmousemove(event) : 鼠标移动事件 event是事件对象。名字固定
            onmouseover : 鼠标悬停事件
            onmouseout : 鼠标移出事件
        鼠标点击事件
            onclick
        加载与卸载事件
            onload ,onunload
        聚焦与离焦事件
            onfocus, onblur
        键盘事件
            onkeypress,onkeyup,onkeydown
        提交与重置事件
            onsubmit,onreset
        选择与改变事件
       
    /***************************************************************************/

    一.BOM回顾
        * BOM 概述
        * BOM 的各个对象
             * window对象
                    innerHeight,innerWidth
                    document.body.clientWidth,document.body.clientHeight,
                    self
                    opener :超链和window.open()
                    parent : iframe和frame
                    frames[]:
                    
                    三种对话框: alert(),prompt(),confirm()
                    定时器: setTimeout(),setInterval()
                    
                    模态窗口: showModalDialog() ,showModelessDialog()
            
            *  History对象
                    forward() ,back(),go()
            *  Location对象.

    二、内容
        * 事件(掌握,明白每个事件发生的时机)
            鼠标移动事件
            * onmousemove(event) : 鼠标移动事件 event是事件对象。名字固定
            * onmouseover : 鼠标悬停事件
                鼠标悬停事件: 当鼠标移动到某个控件上面的时候发生
                    this: 把this写在那个标签里面就代表那个标签对象
                    this.style.backgroundColor : 当调用样式表中的属性的时候,如果属性中间有横杠,则应去掉.
                
                 示例: 当鼠标移动到p标签上的时候,p标签改变样式
                鼠标移开事件: 当鼠标从控件上移开的时候
               
                
        * 鼠标点击事件
            onclick : 当鼠标单击某个控件时发生
                示例: 当单击按钮时,在<p>中显示字符串 "冠希哥来了"
                
        * 加载与卸载事件
            onload ,onunload
                加载事件(onload) : 在整个页面的元素加载完毕之后发生
                卸载事件(onunload) : 是在页面关闭时发生
                  注意: onload和onunload事件必须写在body或者图片标签里面
                
                  
        * 聚焦与离焦事件
            onfocus, onblur
                聚焦事件:是在控件获得焦点的时候发生
                离焦事件:是在控件失去焦点的时候发生

                示例: 文本框获得焦点的时候改变样式,失去焦点时变回原样
                
        * 键盘事件
            onkeypress,onkeyup,onkeydown
                onkeypress: 按下键盘按键并松开
                onkeydown : 按下按键发生
                onkeyup: 松开按键

        * 提交与重置事件
            onsubmit,onreset
            提交事件: 是在点击提交按钮后发生。(必须写在form表单中)
            重置事件: 是在点重置交按钮后发生。

            示例: 提交表单中的数据(检查):如果是陈冠希:通过,否则不能提交数据

                
        * 选择与改变事件
            onselect:
            onchange:
            
            onselect: 只能用于输入框. 当选择输入框中的文本时发生
            onchange: 用于select和文本框.
                        对于下拉框是在选项发生变化的时候发生
                        对于文本框是在文本框的内容发生变化并且失去焦点时发生

                示例: 当选择文本框的内容时,弹出文本框的内容
                下拉框的selectedIndex属性:代表选中某项的索引
               

    DOM技术
    1.Dom概述?
            * 什么是DOM?  docuemnt object model 文档对象模型
            * 它的作用?   重构整个 HTML 文档。您可以添加、移除、改变或重排页面上的项目
            * 分类?   
                 Core DOM :   定义了一套标准的针对任何结构化文档的对象
                 XML  DOM :   定义了一套标准的针对 XML 文档的对象
                 HTML DOM :   定义了一套标准的针对 HTML 文档的对象。
            *.xml介绍?
                expensible markup language : 可扩展标记语言.
                    <penson>
                        <name>张无忌</name>
                        <age>23</age>
                    </person>
                    
    2.DOM树
        * 结点 :   文档中的每个成分都是一个节点.(包括文本也是节点)
        *.结点的属性
            a. nodeName(节点名称)
                元素节点的 nodeName 是标签名称
                属性节点的 nodeName 是属性名称
                文本节点的 nodeName 永远是 #text
                文档节点的 nodeName 永远是 #document

            b. nodeValue(节点值)
                对于文本节点,nodeValue 属性包含文本。
                对于属性节点,nodeValue 属性包含属性值。
                nodeValue 属性对于文档节点和元素节点是不可用的。

            c. nodeType(节点类型)  : nodeType 属性可返回节点的类型。
                标签节点的类型值是 1
                属性节点的类型值是 2
                文本节点的类型值是 3

        *. 结点的分类
                整个文档是一个文档节点
                每个 XML 标签是一个元素节点
                包含在 XML 元素中的文本是文本节点
                每一个 XML 属性是一个属性节点
                注释属于注释节点

        *.结点的关系
                只有父子和兄弟关系
                parentNode  : 父节点
                childNodes  :所有的子标签
                firstChild  :第一个儿子
                lastChild  :最后一个儿子
                nextSibling :下一个兄弟节点
                previousSibling : 上一个兄弟节点

        *. 对结点进行CRUD操作
            *.查找结点?
                两种方式: a. 采用节点之间的关系去拿 根节点: document.documentElement ;
                           b. 采用方法去拿
                                 getElementById() : 根据标签的ID拿到此标签节点
                                 getElementsByTagName() : 根据标签的名字拿到此标签节点数组
                                 getElementsByName(): 适用于表单控件。根据标签的name属性值拿到控件的数组。
                    
                    以上示例参看:示例二. demo09_演示DOM节点属性并获取节点的方法.html;
                                 示例二。demo10_示例一获取h1标签内容.html                         
                                
            *.删除结点?
                removeChild() : 采用父节点删除子节点
                参见示例()
            
            *创建节点:
                document.createElement()  : 创建一个标签节点
                        参见 demo15_表格添加行.html
                docuemnt.createTextNode("内容") :创建一个文本节点
                        参见 demo14_添加节点.html
                节点的setAttribute() :添加属性节点
                        参见 demo14_添加节点.html
                        
            *.添加结点?
                appendChild() : 添加子节点
                    参见 demo14_添加节点.html
                    参见 demo15_表格添加行.html
                    
            *.修改或替换结点?
                replaceNode(): 替换节点(适用于IE)
                replaceChild() : 替换子节点
                
                    参见demo13_节点的替换.html

        

        在javascript中想调用html代码: 只能通过属性innerHTML
        在javascript中想调用CSS代码: 只能通过属性clasName可以调用样式表
                                              .style.属性

  • 相关阅读:
    pta-L2-032 彩虹瓶 (25 分)
    pat-L2-019 悄悄关注
    谷歌与Airbnb的JS代码规范
    无阻塞加载脚本----性能优化(二)
    web开发者性能优化工具(一)
    threeJS创建mesh,创建平面,设置mesh的平移,旋转、缩放、自传、透明度、拉伸
    攻防世界-web-高手进阶区011-Web_python_template_injection
    攻防世界-web-高手进阶区010-upload1
    攻防世界-web-高手进阶区009-unserialize3
    攻防世界-web-高手进阶区008-PHP2
  • 原文地址:https://www.cnblogs.com/jesonjason/p/5262953.html
Copyright © 2011-2022 走看看