zoukankan      html  css  js  c++  java
  • JavaScript——BOM、DOM、事件

    BOM

    1.BOM: broswer object model 浏览器对象模型
    

    Navigator 浏览器对象

    *Navigator 对象获取一些浏览器的信息.
    *属性
        appName	返回浏览器的名称。
    

    Screen 屏幕对象

    *Screen 对象包含有关客户端显示屏幕的信息。
    *属性:
         返回屏幕的宽度       
        height: 返回屏幕的高度
    

    Location 地址栏对象

    Location 对象包含有关当前 URL 的信息。
    *创建创建(获取)
    1.window.location
    2.location
    *方法
        reload(): 重新加载当前文档,刷新操作.
    *属性
        href: 设置或返回完整的url.    
    

    History 对象

     History 对象包含用户(在浏览器窗口中)访问过的 URL。
    *创建(获取)
    1.window.history
    2.history
    *方法
    back()	加载 history 列表中的前一个 URL。
    forward()	加载 history 列表中的下一个 URL。
    go(参数)	加载 history 列表中的某个具体页面。 
    *属性
    length: 返回当前窗口历史列表中的url数量.
    

    Window

    *方法
        1.与弹出框有关的方法
            alert(): 显示带有一段消息和一个确认按钮的警告框.
            confirm(): 显示带有一段消息,以及确认和取消两个按钮的对话框. 若点击确定,该方法返回true, 点击取消,返回false.
            prompt(): 显示可提示用户输入的对话框. 返回值为用户输入的内容.
        2.与打开关闭有关的方法
            close():关闭浏览器窗口. 谁调用的,就关闭哪个窗口
            open(arg1, arg2, arg3, arg4): 打开一个新的浏览器窗口.
            注意: 这4个参数都是可选的, arg1 传入url, arg3传入窗口的特征(设置宽高等)
            window.open("https://www.baidu.com","","width=100,height=100");
        3.与定时器有关的方法
            setTimeout(code,millisec): 在指定的毫秒数后调用函数或计算表达式。
            clearTimeout(id_of_settimeout): 取消由 setTimeout() 方法设置的 timeout。传入某个定时器的id用来取消指定的定时器.
            setInterval(code,millisec): 按照指定的周期(以毫秒计)来调用函数或计算表达式。
            clearInterval(id_of_settimeout): 取消由 setInterval() 设置的 timeout。
    *属性:
        1.获取其他BOM对象
            History
            Location
            Navigator
            Screen
        2.获取DOM对象
            document
    

    Dom

    1.DOM: Document Object Model 文档对象模型
        *文档: 超文本文档(超文本标记文档) html, xml
        *对象: 提供了属性和方法.
        *模型: 使用属性和方法操作超文本标记文档
        *可以使用js里面的dom里面提供的对象,使用这些对象的属性和方法,对标记型文档进行操作.
        *dom里面已经将html里面的标签,属性,文本内容都封装成了对象.
    ![](https://img2020.cnblogs.com/blog/1668748/202004/1668748-20200420224520026-972348874.png)
    2.根据html的层级结构,在内存中分配一个树形结构,需要把html的每部分封装为对象
        *Document对象:整个文档对象
        *Element对象:标签对象
        *Attribute对象:属性对象
        *Text对象:文本对象
        *Comment对象:注释对象
        *Node对象:以上对象的父对象,节点对象
    

    Document文档对象

    1.创建:在html dom模型中可以使用window对象来获取 
        *window.document
        *document
    2.方法:
        *获取Element对象
            getElementById():根据id属性值获取元素对象,id属性值一般唯一,返回node对象
            getElementByTagName():根据元素名称获取元素对象们。返回值是一个数组
            getElementByClassName():根据Class属性值获取元素对象们。返回值是一个数组
            getElementByName():根据name属性值获取元素对象们。返回值是一个数组
        *创建其他document对象
            getAttribute(name):获取指定属性
            getTextNode():获取文本节点
            getEelement():获取标签对象
            getComment():获取注释对象
    

    Element 元素对象(标签对象)

        1.创建:
            document.getElement()
        2.方法:
            *方法(首先通过document来获取元素,然后通过元素进行操作)
                getAttribute(name): 获取指定的属性
                setAttribute(name,value):给元素添加属性
                removeAttribute(name):移除指定名称的属性
            *获取标签下面的子标签
                childNodes():这个属性兼容性很差
                getElementByTagName(name):兼容性好,获取标签下面子标签的唯一有效方法.
    

    Node 节点对象

        1.特点:
            所有dom对象都可以被认为是一个节点.
        2.三大必备属性:
            nodeName:获取节点的名称
            nodeType: 获取节点的类型
            nodeValue: 获取节点的value值
            *因为dom在解析html的时候, html里面的标签,属性,文本都是一个节点,所以上面的三个属性对其都是不同的值.
                标签节点对应的nodeType为1
                属性节点对应的nodeType为2
                文本节点对应的nodeType为3
            parentNode: 父节点
            childNodes:子节点
            nextSlibling:给定节点的下一个兄弟节点
            previousSlibling:给定节点的上一个兄弟节点
            firstChild:第一个子节点
            lastChild:最后一个子节点
    

    CURD_DOM树

    *查找节点
        getElementById():通过节点的id属性,查找指定节点.
    *添加节点
        appendChildNode():向节点的子节点列表的结尾添加新的子节点。
    *插入节点
        insertBefore(newNode, oldNode): 向oldNode节点前插入一个新节点.通过父节点添加
    *删除节点
        removeChild():删除(并返回)当前节点的指定子节点。
    *替换节点
        replaceChild():用新节点替换一个子节点。通过父节点替换
    *复制节点
        cloneNode(true): 复制节点
    *innerHTML属性
        1.获取文本内容
        2.向标签里面设置内容(可以是html代码)
    

    控制样式

    *通过DOM来控制标签的样式
    *通过style来设置属性
    *提前预定好样式,通过className属性来定义样式
    

    事件

    1.事件监听机制
        概念:某些组件(事件源)被执行某些操作(事件)后,触发某些代码(监听器)执行
        事件:某些操作。如: 单击,双击,键盘按下了,鼠标移动了
        事件源:组件。如: 按钮 文本输入框…
        监听器:代码。
        注册监听:将事件,事件源,监听器结合在一起。 当事件源上发生了某个事件,则触发执行某个监听器代码。
    2.常见的事件
        *点击事件:
            onclick:单击事件
            ondblclick:双击事件
        *焦点事件
            onblur:失去焦点
            *一般用于表单验证
            onfocus:元素获得焦点。
        *加载事件:
            onload:一张页面或一幅图像完成加载。
        *鼠标事件:
            onmousedown 鼠标按钮被按下。
            onmouseup 鼠标按键被松开。
            onmousemove 鼠标被移动。
            onmouseover 鼠标移到某元素之上。
            onmouseout 鼠标从某元素移开。
        *键盘事件:
            onkeydown 某个键盘按键被按下。 
            onkeyup 某个键盘按键被松开。
            onkeypress 某个键盘按键被按下并松开。
        *选择和改变
            onchange 域的内容被改变。
            onselect 文本被选中。
        *表单事件:
            onsubmit	确认按钮被点击。
            可以阻止表单的提交,方法返回false则表单被阻止提交。
            onreset 重置按钮被点击。
  • 相关阅读:
    欧几里德算法
    int 和 string 相互转换(简洁版)
    骆驼吃香蕉
    链表反转 (Multi-method)
    二分查找 (最经典代码,及其边界条件的实践分析)
    mottoes
    欧拉函数,欧拉定理,费马小定理。
    深搜和广搜的对比
    Python基础
    马拉车求最大回文字串
  • 原文地址:https://www.cnblogs.com/linjing111/p/12741667.html
Copyright © 2011-2022 走看看