什麼是: 專門操做瀏覽器窗口的API
沒有標準, 致使瀏覽器兼容性問題
包括:
window
history
location
navigator
dom
event
screen前端
屬性: .innerWidth, .innerHeight 瀏覽器窗口中,文檔顯示區的寬和高
方法: .open() .close() .open("url","name")node
三種:瀏覽器
1.在當前窗口打開,可後退: .open("url","_self") 2.在新窗口打開,可打開多個: .open("url","_blank") 3.在新窗口打開,只能打開一個: .open("url","自定義窗口名")
在當前窗口中,每訪問一個新url,都會將新url壓入history
API: history.go(n)緩存
3種:服務器
前進: history.go(1) 後退: history.go(-1) 刷新: history.go(0)
屬性:
.href 完整url地址
.protocol 協議
.host 主機名+端口號
.hostname 主機名
.port 端口號
.pathname 相對路徑
.hash #錨點地址
.search ?查詢字符串cookie
方法:dom
從新加載頁面: 刷新: 2種:函數
週期性定時器:
什麼是: 讓程序每隔指定的時間間隔,反覆執行一項任務
什麼時候: 只要讓程序按照指定的時間間隔,自動執行一項任務
如何: 3件事:
1.任務函數: 讓定時器反覆執行的任務
2.啓動定時器: timer=setInterval(task, interval)優化
讓程序,每隔interval 毫秒自動執行一次task任務
3.中止定時器: clearInterval(timer)this
timer: 定時器的序號, 在內存中惟一標識定時器的整數 專門用於中止定時器 如何得到: 只能在啓動定時器時得到。 什麼時候: 只要一個定時器可能被中止,就要在啓動時,先保存定時器序號 好的習慣: 在clearInterval以後,手動清除timer中殘留的序號: timer=null;
中止定時器: 2種狀況:
2.一次性定時器:
什麼是: 讓程序先等待一段時間,再執行一次任務。執行後,自動中止。
什麼時候: 只要讓程序延遲執行一件事時
如何: 3件事:
1.task
2.啓動定時器: timer=setTimeout(task,wait)
讓程序等待wait毫秒後,自動執行一次task,執行後自動中止
3.中止定時器: clearTimeout(timer)
定時器中的任務函數,必須等待主程序全部語句執行後,才能執行。
1.什麼是: 保存瀏覽器配置信息的對象
包括:
.cookieEnabled: 判斷當前瀏覽器是否啓用cookie
2.什麼是cookie: 在客戶端持久存儲用戶私密數據的小文件
爲何: 內存中全部數據都是臨時的! 程序關閉,內存中一切變量都釋放!
什麼時候: 只要但願在客戶端持久保存數據,都用cookie
.plugins: 包含瀏覽器全部插件信息的集合
3.什麼是插件: 爲瀏覽器添加新功能的小軟件
如何判斷是否安裝指定插件:
.userAgent: 保存瀏覽器名稱和版本號的字符串
什麼時候: 只要判斷瀏覽器名稱和版本號
什麼是事件: 人爲觸發的,或瀏覽器自動觸發的頁面內容狀態的改變。
什麼是事件處理函數: 當事件發生時,自動執行的函數。
如何綁定: 3種:
什麼是: 從事件觸發處處理函數執行,所通過的過程
3個階段:
什麼是: 當事件發生時,自動建立的,封裝事件信息的對象
什麼時候: 只要但願得到事件信息,或修改事件的默認行爲時
如何獲取: 事件對象默認老是以處理函數第一個參數,自動傳入
如何使用:
利用冒泡:
優化: 儘可能減小事件監聽的個數
爲何: 瀏覽器查找事件監聽,採用的是遍歷的方式
事件監聽多,瀏覽器查找就慢
什麼時候: 若是對多個子元素綁定相同事件時,都要利用冒泡
如何: 只要在父元素綁定一次,全部子元素共用便可!
2個難題:
1. 得到目標元素: 目標元素: 最初實際觸發事件的當前元素 如何得到: 錯誤: this->父元素 正確: e.target 2. 篩選目標元素: 好比: 經過nodeName, class, 內容。。。
阻止默認行爲:
什麼時候: 只要事件的默認行爲不是想要的
如何: e.preventDefault();
什麼時候:
1. 相對於屏幕左上角: e.screenX, e.screenY 2. 相對於文檔顯示區左上角: e.clientX, e.clientY 3. 相對於當前元素左上角: e.offsetX, e.offsetY
事件: window.onscroll
得到頁面滾動過的高度: body頂部超出文檔顯示區頂部的距離
scrollTop=document.documentElement.scrollTop ||document.body.scrollTop;
滾動API: window.scrollTo(left, top) window.scrollBy(left的增量,top的增量)