1 從JavaScript來看瀏覽器和HTML文檔html
BOM(Browser Object Model)是指瀏覽器對象模型,它使 JavaScript 有能力與瀏覽器進行「對話」。node
全部操做是對於window對象的直接操做瀏覽器
DOM (Document Object Model)是指文檔對象模型,經過它,能夠訪問HTML文檔的全部元素。app
全部操做時對於document對象的操做函數
Window對象是客戶端JavaScript最高層對象之一,因爲window對象是其它大部分對象的共同祖先,在調用window對象的方法和屬性時,this
能夠省略window對象的引用。例如:window.document.write()能夠簡寫成:document.write()。spa
2 window對象的具體屬性和函數操作系統
1 全部瀏覽器都支持 window 對象。它表示瀏覽器窗口。code
2 全局變量是 window 對象的屬性。全局函數是 window 對象的方法。orm
經常使用的Window方法:
window應該知道的子對象:
navigator對象:經過這個對象能夠斷定用戶所使用的瀏覽器,包含了瀏覽器相關信息
avigator.appName // Web瀏覽器全稱
navigator.appVersion // Web瀏覽器廠商和版本的詳細字符串
navigator.userAgent // 客戶端絕大部分信息
navigator.platform // 瀏覽器運行所在的操做系統
screen對象:屏幕對象,
screen.availWidth - 可用的屏幕寬度
screen.availHeight - 可用的屏幕高度
history對象 對象包含瀏覽器的歷史,但咱們沒法查看具體的地址
history.forward() // 前進一頁
history.back() // 後退一頁
location對象:window.location 對象用於得到當前頁面的地址 (URL),並把瀏覽器重定向到新的頁面。
location.href 獲取URL
location.href="URL" // 跳轉到指定頁面
location.reload() 從新加載頁面
彈出框,警告框、確認框、提示框。
警告框:window.alert("嚇你一跳哦!") //單向接受信息
確認框:window.confirm("想不想來一發,請在下面輸入你的答案") //能夠有肯定和取消選擇回饋
提示框:window.prompt("你是誰") //能夠回饋文本信息
setTimeout() 讓一個動做延遲一段時間後運行
僞代碼:var t=setTimeout("JS語句",毫秒)
setTimeout() 方法會返回某個值。在上面的語句中,值被儲存在名爲 t 的變量中。這個值是指在這個window對象中timeout()的一個標識,數據類型爲number。
假如你但願取消這個 setTimeout(),就要用到上面那個值。
clearTimeout(); 按照標識的值取消對應計時事件, 注意下次在運行新的setTimeout(),會按順序建立一個新的標識值。
clearInterval(),var t=setTimeout("JS語句",毫秒);setInterval() 方法可按照指定的週期(以毫秒計)來調用函數或計算表達式。
clearInterval()
clearInterval() 方法可取消由 setInterval() 設置的 Interval()。方法同上
實例
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <P>第一個例子定時器</P> <input id='checkTime'type="text" value=""></input> <input id='begin' type="button" value="開始" onclick="timeGo()"></input> <input id='stop' type="button" value="結束" onclick="timeStop()"> <script> var TimeInterVal; function catTime() { var Now = new Date(); STime = Now.toLocaleString(); return STime; } function timeGo() { if (TimeInterVal===undefined ){ TimeInterVal = setInterval("document.getElementById(\"checkTime\").value =catTime()", 1000); } } function timeStop() { clearInterval(TimeInterVal); TimeInterVal=null; } </script> </body> </html>
3 DOM,document對象
DOM(Document Object Model)是一套對文檔的內容進行抽象和概念化的方法。
當網頁被加載時,瀏覽器會建立頁面的文檔對象模型(Document Object Model)。
HTML DOM 模型被構造爲對象的樹。
DOM標準規定HTML文檔中的每一個成分都是一個節點(node):
直接捕獲;
document.getElementById 根據ID獲取一個標籤
document.getElementsByClassName 根據class屬性獲取
document.getElementsByTagName 根據標籤名獲取標籤合集
間接捕獲:
parentElement 父節點標籤元素
children 全部子標籤
firstElementChild 第一個子標籤元素
lastElementChild 最後一個子標籤元素
nextElementSibling 下一個兄弟標籤元素
previousElementSibling 上一個兄弟標籤元素
建立節點:createElement(標籤名),實例:var divEle = document.createElement("div");
添加子節點:
追加一個子節點(做爲最後的子節點)
somenode.appendChild(newnode);
把增長的節點放到某個子節點的前邊。
somenode.insertBefore(newnode,某個節點);
刪除子節點:somenode.removeChild(要刪除的節點)
替換子節點:somenode.replaceChild(newnode, 某個節點);
填充節點文本:
var divEle = document.getElementById("d1") divEle.innerText="1"
填充節點內容:
divEle.innerHtml="<p>2</p>"
對於標籤節點的屬性操做
var divEle = document.getElementById("d1");
divEle.setAttribute("age","18")
divEle.getAttribute("age")
divEle.removeAttribute("age")
// 自帶的屬性還能夠直接.屬性名來獲取和設置
imgEle.src
imgEle.src="..."
className 獲取全部樣式類名(字符串)
classList.remove(cls) 刪除指定類
classList.add(cls) 添加類
classList.contains(cls) 存在返回true,不然返回false
classList.toggle(cls) 存在就刪除,不然添加
style值的修改:obj.style.backgroundColor="red";
JS操做style屬性修改的規律:
1.對於沒有中橫線的CSS屬性通常直接使用style.屬性名
obj.style.margin
obj.style.width
obj.style.left
obj.style.position
2.對含有中橫線的CSS屬性,將中橫線後面的第一個字母換成大寫便可
obj.style.marginTop
obj.style.borderLeftWidth
obj.style.zIndex
obj.style.fontFamily
HTML 4.0 的新特性之一是有能力使 HTML 事件觸發瀏覽器中的動做(action),好比當用戶點擊某個 HTML 元素時啓動一段 JavaScript。
onclick 當用戶點擊某個對象時調用的事件句柄。
ondblclick 當用戶雙擊某個對象時調用的事件句柄。
onfocus 元素得到焦點。 // 練習:輸入框
onblur 元素失去焦點。 應用場景:用於表單驗證,用戶離開某個輸入框時,表明已經輸入完了,咱們能夠對它進行驗證.
onchange 域的內容被改變。 應用場景:一般用於表單元素,當元素內容被改變時觸發.(select聯動)
onkeydown 某個鍵盤按鍵被按下。 應用場景: 當用戶在最後一個輸入框按下回車按鍵時,表單提交.
onkeypress 某個鍵盤按鍵被按下並鬆開。
onkeyup 某個鍵盤按鍵被鬆開。
onload 一張頁面或一幅圖像完成加載。
onmousedown 鼠標按鈕被按下。
onmousemove 鼠標被移動。
onmouseout 鼠標從某元素移開。
onmouseover 鼠標移到某元素之上。
onselect 在文本框中的文本被選中時發生。
onsubmit 確認按鈕被點擊,使用的對象是form。
1 在標籤中引用js的函數,如
<div id="d1" onclick="changeColor(this);">點我</div> <script> function changeColor(ths) { ths.style.backgroundColor="green"; } </script>
注意:
this是實參,表示觸發事件的當前元素。函數定義過程當中的ths爲形參
this表示當前環境,
2 在js函數中找到標籤,而後添加動做
<div id="d2">點我</div> <script> var divEle2 = document.getElementById("d2"); divEle2.onclick=function () { this.innerText="呵呵"; } </script>