日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > HTML >内容正文

HTML

bom event周期_前端知识点总结——BOM

發(fā)布時間:2025/3/15 HTML 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bom event周期_前端知识点总结——BOM 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前端知識點總結(jié)——BOM

1.BOM: Browser Object Model

什么是: 專門操作瀏覽器窗口的API

沒有標(biāo)準(zhǔn), 導(dǎo)致瀏覽器兼容性問題

包括:

window

history

location

navigator

dom

event

screen

2.window:

屬性: .innerWidth, .innerHeight 瀏覽器窗口中,文檔顯示區(qū)的寬和高

方法: .open() .close() .open("url","name")

三種:

1.在當(dāng)前窗口打開,可后退: .open("url","_self")

2.在新窗口打開,可打開多個: .open("url","_blank")

3.在新窗口打開,只能打開一個:

.open("url","自定義窗口名")

3.history: 保存當(dāng)前窗口打開后,成功訪問過的url的歷史記錄棧

在當(dāng)前窗口中,每訪問一個新url,都會將新url壓入history

API: history.go(n)

3種:

前進: history.go(1)

后退: history.go(-1)

刷新: history.go(0)

4.location: 保存當(dāng)前窗口正在打開的url的對象

屬性:

.href 完整url地址

.protocol 協(xié)議

.host 主機名+端口號

.hostname 主機名

.port 端口號

.pathname 相對路徑

.hash #錨點地址

.search ?查詢字符串

方法:

在當(dāng)前窗口打開,可后退:

location.assign(url) => location.href=url => location=url

在當(dāng)前窗口打開,禁止后退:

location.replace(url)

重新加載頁面: 刷新: 2種:

普通刷新:

優(yōu)先從瀏覽器本地緩沖獲取資源:

F5

history.go(0)

location.reload(/false/)

強制刷新:

無論本地是否有緩存,總是強制從服務(wù)器獲取資源

location.reload(true)

5.定時器: 2種:

周期性定時器:

什么是: 讓程序每隔指定的時間間隔,反復(fù)執(zhí)行一項任務(wù)

何時: 只要讓程序按照指定的時間間隔,自動執(zhí)行一項任務(wù)

如何: 3件事:

1.任務(wù)函數(shù): 讓定時器反復(fù)執(zhí)行的任務(wù)

2.啟動定時器: timer=setInterval(task, interval)

讓程序,每隔interval 毫秒自動執(zhí)行一次task任務(wù)

3.停止定時器: clearInterval(timer)

timer: 定時器的序號, 在內(nèi)存中唯一標(biāo)識定時器的整數(shù)

專門用于停止定時器

如何獲得: 只能在啟動定時器時獲得。

何時: 只要一個定時器可能被停止,就要在啟動時,先保存定時器序號

好的習(xí)慣: 在clearInterval之后,手動清除timer中殘留的序號: timer=null;

停止定時器: 2種情況:

用戶手動停止:

定時器可自動停止:

在任務(wù)函數(shù)中,設(shè)定臨界值,如果沒有達到臨界值,則繼續(xù)執(zhí)行任務(wù),否則,如果達到臨界值,就自動調(diào)用clearInterval

2.一次性定時器:

什么是: 讓程序先等待一段時間,再執(zhí)行一次任務(wù)。執(zhí)行后,自動停止。

何時: 只要讓程序延遲執(zhí)行一件事時

如何: 3件事:

1.task

2.啟動定時器: timer=setTimeout(task,wait)

讓程序等待wait毫秒后,自動執(zhí)行一次task,執(zhí)行后自動停止

3.停止定時器: clearTimeout(timer)

6.定時器原理:

定時器中的任務(wù)函數(shù),必須等待主程序所有語句執(zhí)行后,才能執(zhí)行。

7.navigator:

1.什么是: 保存瀏覽器配置信息的對象

包括:

.cookieEnabled: 判斷當(dāng)前瀏覽器是否啟用cookie

2.什么是cookie: 在客戶端持久存儲用戶私密數(shù)據(jù)的小文件

為什么: 內(nèi)存中所有數(shù)據(jù)都是臨時的! 程序關(guān)閉,內(nèi)存中一切變量都釋放!

何時: 只要希望在客戶端持久保存數(shù)據(jù),都用cookie

.plugins: 包含瀏覽器所有插件信息的集合

3.什么是插件: 為瀏覽器添加新功能的小軟件

如何判斷是否安裝指定插件:

.userAgent: 保存瀏覽器名稱和版本號的字符串

何時: 只要判斷瀏覽器名稱和版本號

8.event:

什么是事件: 人為觸發(fā)的,或瀏覽器自動觸發(fā)的頁面內(nèi)容狀態(tài)的改變。

什么是事件處理函數(shù): 當(dāng)事件發(fā)生時,自動執(zhí)行的函數(shù)。

如何綁定: 3種:

在HTML中綁定:

綁定:

當(dāng)事件發(fā)生時: 自動執(zhí)行js語句

問題: 不符合內(nèi)容與行為分離的原則,不便于維護和重用

但是: 在組件開發(fā)中,反而要求內(nèi)容,行為和樣式集中定義在一個小組件內(nèi),自成體系。

在js中綁定, 每個事件只能綁定一個處理函數(shù):

ANY.on事件名=function(){ ... }

當(dāng)事件發(fā)生時: ANY.on事件名() //this->ANY

問題: 用賦值方式綁定事件處理函數(shù)

在js中綁定,每個事件可綁定多個處理函數(shù):

ANY.addEventListener('事件名',handler)

在瀏覽器中為ANY元素的指定事件,添加一個事件監(jiān)聽對象。將事件監(jiān)聽對象加入到瀏覽器的監(jiān)聽隊列中。

觸發(fā)事件時: 瀏覽器會遍歷監(jiān)聽隊列中的每個監(jiān)聽對象,找到觸發(fā)事件元素上對應(yīng)事件的監(jiān)聽對象,調(diào)用其處理函數(shù)

移除事件監(jiān)聽:

ANY.removeEventListener('事件名',handler)

說明: handler必須是綁定時使用的原函數(shù)對象

強調(diào): 如果一個處理函數(shù),有可能被移除,則不能使用匿名函數(shù)綁定。應(yīng)使用有名的函數(shù)綁定

9.DOM事件模型:

什么是: 從事件觸發(fā)到處理函數(shù)執(zhí)行,所經(jīng)過的過程

3個階段:

捕獲capture: 由外向內(nèi),記錄各級父元素上綁定的事件處理函數(shù)。——僅記錄,不觸發(fā)!

目標(biāo)觸發(fā): 優(yōu)先觸發(fā)實際點擊的元素上綁定的處理函數(shù)

冒泡執(zhí)行: 由內(nèi)向外,按捕獲階段記錄的處理函數(shù)的倒序,依次執(zhí)行父元素上的處理函數(shù)。

10.事件對象:

什么是: 當(dāng)事件發(fā)生時,自動創(chuàng)建的,封裝事件信息的對象

何時: 只要希望獲得事件信息,或修改事件的默認(rèn)行為時

如何獲取: 事件對象默認(rèn)總是以處理函數(shù)第一個參數(shù),自動傳入

如何使用:

取消冒泡: e.stopPropagation()

利用冒泡:

優(yōu)化: 盡量減少事件監(jiān)聽的個數(shù)

為什么: 瀏覽器查找事件監(jiān)聽,采用的是遍歷的方式

事件監(jiān)聽多,瀏覽器查找就慢

何時: 如果對多個子元素綁定相同事件時,都要利用冒泡

如何: 只要在父元素綁定一次,所有子元素共用即可!

2個難題:

1. 獲得目標(biāo)元素:

目標(biāo)元素: 最初實際觸發(fā)事件的當(dāng)前元素

如何獲得:

錯誤: this->父元素

正確: e.target

2. 篩選目標(biāo)元素:

比如: 通過nodeName, class, 內(nèi)容。。。

阻止默認(rèn)行為:

何時: 只要事件的默認(rèn)行為不是想要的

如何: e.preventDefault();

何時:

用a當(dāng)按鈕時,a會自動向地址欄中添加#錨點地址。

提交表單時,如果驗證沒通過,可阻止提交

自定義表單提交:

input button + onclick + form.submit

input submit + form.onsubmit事件 + e.preventDefault()

HTML5中拖拽API: 首先要阻止瀏覽器默認(rèn)的拖拽行為

11.鼠標(biāo)坐標(biāo): 3組:

1. 相對于屏幕左上角: e.screenX, e.screenY

2. 相對于文檔顯示區(qū)左上角: e.clientX, e.clientY

3. 相對于當(dāng)前元素左上角: e.offsetX, e.offsetY

12.頁面滾動:

事件: window.onscroll

獲得頁面滾動過的高度: body頂部超出文檔顯示區(qū)頂部的距離

scrollTop=document.documentElement.scrollTop

||document.body.scrollTop;

滾動API:

window.scrollTo(left, top)

window.scrollBy(left的增量,top的增量)

總結(jié)

以上是生活随笔為你收集整理的bom event周期_前端知识点总结——BOM的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美乱淫| 黄色网址大全免费 | 青青青草视频在线 | 亚洲综合三区 | 天天色天天综合 | 天天拍天天操 | 天天操人人| 亚洲爽爽爽 | 男女插插视频 | 东北女人av | 黄色网址在线免费播放 | av免费观看大全 | 久久无码人妻丰满熟妇区毛片 | 狠狠摸狠狠操 | 日本黄页网址 | 天天干干干| 麻豆一区二区 | 国产精品丝袜黑色高跟 | 亚洲色图10p | 国产日韩一区二区 | 日韩二级片 | 亚州综合视频 | 99re这里 | 欧美一区一区 | 少妇看片| 两性囗交做爰视频 | 中文字幕在线看片 | 亚洲乱色熟女一区二区三区 | 木下凛凛子av一区二区三区 | 成人午夜淫片免费观看 | 亚洲成人网在线 | 肥老熟妇伦子伦456视频 | www污污 | 日本视频在线免费观看 | 中文字幕视频在线播放 | 91国产在线播放 | 伊人狼人影院 | 久久午夜国产精品 | 日韩欧美中文字幕一区 | 永久看看免费大片 | 黄色在线观看免费视频 | 国产精品久久久久影院 | av影片在线播放 | 波多野结衣视频免费看 | 亚洲一区二区三区四 | 国产精品成人无码免费 | 91久久精品夜夜躁日日躁欧美 | 亚洲无吗在线观看 | 内射一区二区三区 | 欧洲一区二区三区四区 | 经典杯子蛋糕日剧在线观看免费 | 国产无码精品视频 | 都市激情亚洲色图 | 日产久久久久久 | 天堂欧美城网站网址 | av片免费看 | 免费无码肉片在线观看 | 久久国产精品综合 | 亚洲天堂精品在线观看 | 久久久久久久久久久国产精品 | 天天躁日日躁狠狠很躁 | 操啊操| 国产精品天美传媒入口 | 亚洲成人黄色小说 | 狠狠干in| 久久成人a毛片免费观看网站 | 久久夜色精品国产欧美乱 | 中文字幕成人网 | 欧美色图亚洲视频 | 国产一二精品 | 无码国内精品人妻少妇蜜桃视频 | 国产精品免费一区二区三区在线观看 | 中文字幕超碰在线 | 久久天堂av | 中国免费一级片 | 国产中文字幕视频 | 亚洲伦理一区 | 国产一级二级视频 | 国产日比视频 | 朝鲜美女黑毛bbw | 手机在线观看av | 恶虐女帝安卓汉化版最新版本 | 黄色大片久久 | 国产精品视频第一页 | 国产91对白在线播放 | 精品无人区无码乱码毛片国产 | 国产喷水吹潮视频www | 亚洲精品一区二区三区不卡 | 福利视频在线导航 | av男人的天堂网 | 伊人久久久久久久久久久久久 | 色哟哟入口国产精品 | 深爱五月网 | 国产高清中文字幕 | 韩日av在线播放 | 经典毛片 | 男女xx网站 | 蜜臀av性久久久久av蜜臀妖精 | 国产女人在线 |