BOM:
一、概念:
Browser Object Model 浏覽器對象模型 :将浏覽器的各個組成部分封裝成對象。
二、組成:
- Window:視窗對象
- Navigator:浏覽器對象(x)
- Screen:顯示器螢幕對象(x)
- History:曆史記錄對象
- Location:位址欄對象
三、Window:視窗對象
3.1 方法
1)與彈出框有關的方法:
alert() 顯示帶有一段消息和一個确認按鈕的警告框。
confirm() 顯示帶有一段消息以及确認按鈕和取消按鈕的對話框。(用的多)
· 如果使用者點選确定按鈕,則方法傳回true
· 如果使用者點選取消按鈕,則方法傳回false
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Window對象</title>
</head>
<body>
<script>
//确認框
var flag = confirm("您确定要退出嗎?");
if(flag){
//退出操作 确定為true
alert("歡迎再次光臨!");
}else{
alert("手别抖...");
}
</script>
</body>
</html>
prompt() 顯示可提示使用者輸入的對話框。
傳回值:擷取使用者輸入的值
//輸入框
var result = prompt("請輸入使用者名");
alert(result);
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsISPrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdsATOfd3bkFGazxCMx8VesATMfhHLlN3XnxCMwEzX0xiRGZkRGZ0Xy9GbvNGLpZTY1EmMZVDUSFTU4VFRR9Fd4VGdsYTMfVmepNHLrJXYtJXZ0F2dvwVZnFWbp1zczV2YvJHctM3cv1Ce-cmbw5SZhVmMiBDNyITNwADOxQjZ0MDMykDOjlTOwMTMiFTY08CX3EzLclDMxIDMy8CXn9Gbi9CXzV2Zh1WavwVbvNmLvR3YxUjL4M3Lc9CX6MHc0RHaiojIsJye.png)
2)與打開關閉有關的方法:
close() 關閉浏覽器視窗。誰調用我 ,我關誰
open() 打開一個新的浏覽器視窗,傳回新的Window對象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Window對象</title>
</head>
<body>
<input id="openBtn" type="button" value="打開視窗">
<input id="closeBtn" type="button" value="關閉視窗">
<script>
//打開新視窗
var openBtn = document.getElementById("openBtn");
var newWindow;
//綁定事件
openBtn.onclick = function(){
//打開新視窗
newWindow = open("https://www.baidu.com");
}
//關閉新視窗
var closeBtn = document.getElementById("closeBtn");
closeBtn.onclick = function(){
// 關閉新視窗
newWindow.close();
}
</script>
</body>
</html>
3) 與定時器有關的方式
setTimeout() :在指定的毫秒數後調用函數或計算表達式隻執行一次。參數: js代碼或者方法對象/毫秒值
傳回值:唯一辨別,用于取消定時器
<body>
<script>
//一次性定時器,延遲2秒執行 boom~~
setTimeout("fun();",2000);
//setTimeout(fun,2000);
function fun(){
alert('boom~~');
}
</script>
</body>
clearTimeout() 取消由 setTimeout() 方法設定的 timeout。
var id = setTimeout(fun,2000);
//取消一次性定時器
clearTimeout(id);
function fun(){
alert('boom~~');
}
setInterval() (循環)按照指定的周期(以毫秒計)來調用函數或計算表達式。
<body>
<script>
function fun(){
alert('boom~~');
}
setInterval(fun,2000);
</script>
</body>
clearInterval() 取消由 setInterval() 設定的 timeout。
<body>
<script>
function fun(){
alert('boom~~');
}
//循環定時器
var id =setInterval(fun,2000);
//取消循環定時器
clearInterval(id);
</script>
</body>
圖檔輪播的案例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>輪播圖</title>
</head>
<body>
<img id="img" src="img/abanner_1.jpeg" width="100%">
<script>
/*
分析:
1.在頁面上使用img标簽展示圖檔
2.定義一個方法,修改圖檔對象的src屬性
3.定義一個定時器,每隔3秒調用方法一次。
*/
//修改圖檔src屬性
var number = 1;
function fun(){
number ++ ;
//判斷number是否大于3
if(number > 3){
number = 1;
}
//擷取img對象
var img = document.getElementById("img");
img.src = "img/abanner_"+number+".jpeg";
}
//2.定義循環定時器
setInterval(fun,1000);
</script>
</body>
</html>
3.2 屬性
3.2.1 擷取其他BOM對象:
history
var h1 = window.history;
var h2 = history;
location
Navigator
Screen
3.2.2 擷取DOM對象:document
<body>
<input id="openBtn" type="button" value="打開視窗">
<script>
var openBtn = window.document.getElementById("openBtn");
alert(openBtn);
</script>
</body>
3.2.3 特點
Window對象不需要建立可以直接使用 window使用。 window.方法名();
window引用可以省略。 方法名();
四、Location:
位址欄對象,包含目前有關的URL資訊
4.1 建立(擷取):
- window.location
- location
4.2 方法:
- reload() 重新加載目前文檔。重新整理
4.3 屬性:
- href 設定或傳回完整的 URL。可用作跳轉url
<script>
//擷取href
var href = location.href ;
alert(href);
</script>
重新整理、在目前頁面跳轉頁面 demo:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Location對象</title>
</head>
<body>
<input type="button" id="btn" value="重新整理">
<input type="button" id="goBoke" value="去隻要不兔的部落格">
<script>
//reload方法,定義一個按鈕,點選按鈕,重新整理目前頁面
//1.擷取按鈕
var btn = document.getElementById("btn");
//2.綁定單擊事件
btn.onclick = function(){
//3.重新整理頁面
location.reload();
}
//擷取href
// var href = location.href ;
//alert(href);
//點選按鈕,去通路www.cnblogs.com/nanao/官網
//1.擷取按鈕
var goBoke = document.getElementById("goBoke");
//2.綁定單擊事件
goBoke.onclick = function(){
//3.去通路隻要不兔的部落格
location.href = "https://www.cnblogs.com/nanao/";
}
</script>
</body>
</html>
實作自動跳轉demo(html+css+js)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>自動跳轉</title>
<style>
p{
text-align: center;
}
span{
color:red;
}
</style>
</head>
<body>
<p>
<span id="time">5</span>秒之後,自動跳轉到首頁...
</p>
<script>
/*
分析:
1.顯示頁面效果 <p>
2.倒計時讀秒效果實作
2.1 定義一個方法,擷取span标簽,修改span标簽體内容,時間--
2.2 定義一個定時器,1秒執行一次該方法
3.在方法中判斷時間如果<= 0 ,則跳轉到首頁
*/
// 2.倒計時讀秒效果實作
var second = 5;
var time = document.getElementById("time");
//定義一個方法,擷取span标簽,修改span标簽體内容,時間--
function showTime(){
second -- ;
//判斷時間如果<= 0 ,則跳轉到首頁
if(second <= 0){
//跳轉到首頁
location.href = "https://www.baidu.com";
}
//innerHTML 修改标簽體内容
time.innerHTML = second +"";
}
//設定定時器,1秒執行一次該方法
setInterval(showTime,1000);
</script>
</body>
</html>
五、History:曆史記錄對象
5.1 建立(擷取):
- window.history
- history
5.2 方法:
- back() 加載 history 清單中的前一個 URL。
- rward() 加載 history 清單中的下一個 URL。
-
go(參數) 加載 history 清單中的某個具體頁面。
參數:正數:前進幾個曆史記錄
負數:後退幾個曆史記錄
5.3 屬性:
案例:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>History對象</title>
</head>
<body>
<input type="button" id="btn" value="擷取曆史記錄個數">
<a href="09_History對象2.html">09頁面</a>
<input type="button" id="forward" value="前進">
<script>
//length傳回目前視窗曆史清單中的 URL 數量。
//1.擷取按鈕
var btn = document.getElementById("btn");
//2.綁定單機事件
btn.onclick = function(){
//3.擷取目前視窗曆史記錄個數
var length = history.length;
alert(length);
}
//1.擷取按鈕
var forward = document.getElementById("forward");
//2.綁定單機事件
forward.onclick = function(){
//前進
// history.forward();
history.go(1);
}
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>輪播圖</title>
</head>
<body>
<img id="img" src="img/abanner_1.jpeg" width="50%" >
<input type="button" id="back" value="後退">
<script>
/*
分析:
1.在頁面上使用img标簽展示圖檔
2.定義一個方法,修改圖檔對象的src屬性
3.定義一個定時器,每隔3秒調用方法一次。
*/
//修改圖檔src屬性
var number = 1;
function fun(){
number ++ ;
//判斷number是否大于3
if(number > 3){
number = 1;
}
//擷取img對象
var img = document.getElementById("img");
img.src = "img/abanner_"+number+".jpeg";
}
//2.定義定時器
setInterval(fun,3000);
//1.擷取按鈕
var back = document.getElementById("back");
//2.綁定單機事件
back.onclick = function(){
//後退
// history.back();
history.go(-1);
}
</script>
</body>
</html>