JavaScript BOM

BOM簡(jiǎn)介

BOM即瀏覽器對(duì)象模型(Brower Object Model)
瀏覽器對(duì)象包括 :
Window(窗口)
Navigator(瀏覽器)
Screen (客戶端屏幕)
History(訪問歷史)
Location(瀏覽器地址)

Window對(duì)象

  • 獲取文檔顯示區(qū)域的高度和寬度
    一旦頁(yè)面加載,就會(huì)自動(dòng)創(chuàng)建window對(duì)象载佳,所以無需手動(dòng)創(chuàng)建window對(duì)象。
    通過window對(duì)象可以獲取文檔顯示區(qū)域的高度和寬度
<script>
  document.write("文檔內(nèi)容");
  document.write("文檔顯示區(qū)域的寬度"+window.innerWidth);
  document.write("<br>");
  document.write("文檔顯示區(qū)域的高度"+window.innerHeight);
</script>
  • 獲取外部窗體的寬度和高度
    所謂的外部窗體即瀏覽器主守,可能用的是360,火狐插龄,IE, Chrome等等挠说。
<script> 
  document.write("瀏覽器的寬度:"+window.outerWidth);
  document.write("<br>");
  document.write("瀏覽器的高度:"+window.outerHeight);
</script>
  • 打開一個(gè)新的窗口
    有的時(shí)候,你碰到一些網(wǎng)站會(huì)自動(dòng)打開另一個(gè)網(wǎng)站溃肪,那么是怎么做到的呢?
    就是通過window的open方法做到的
    不建議使用,如果需要打開一個(gè)新的網(wǎng)站音五,應(yīng)該通過超級(jí)鏈接等方式讓用戶主動(dòng)打開惫撰,在沒有告知用戶的前提下就打開一個(gè)新的網(wǎng)站會(huì)影響用戶的體驗(yàn)
<script>
function openNewWindow(){
  myWindow=window.open("/");
}
</script>
<button onclick="openNewWindow()">打開一個(gè)新的窗口</button>

Navigator對(duì)象

Navigator即瀏覽器對(duì)象,提供瀏覽器相關(guān)的信息

<script type="text/javascript">
document.write("<p>瀏覽器產(chǎn)品名稱:");
document.write(navigator.appName + "</p>");
 
document.write("<p>瀏覽器版本號(hào):");
document.write(navigator.appVersion + "</p>");
 
document.write("<p>瀏覽器內(nèi)部代碼:");
document.write(navigator.appCodeName + "</p>");
 
document.write("<p>瀏覽器程序位數(shù)(或者操作系統(tǒng)):");
document.write(navigator.platform + "</p>");
 
document.write("<p>是否啟用Cookies:");
document.write(navigator.cookieEnabled + "</p>");
 
document.write("<p>瀏覽器的用戶代理報(bào)頭:");
document.write(navigator.userAgent + "</p>");
</script>

Screen對(duì)象

Screen對(duì)象表示用戶的屏幕相關(guān)信息
如果是在臺(tái)式電腦上躺涝,通吵辏看到的可用區(qū)域的高度會(huì)比屏幕高度小一點(diǎn),因?yàn)橛腥蝿?wù)欄的存在。

<html>
<body>
<script type="text/javascript">
document.write("用戶的屏幕分辨率: ")
document.write(screen.width + "*" + screen.height)
document.write("<br />")
document.write("可用區(qū)域大小: ")
document.write(screen.availWidth + "*" + screen.availHeight)
document.write("<br />")
</script>
</body>
</html>

History

History用于記錄訪問歷史

  • 返回上一次的訪問
<script>
function goBack()
  {
     history.back();
  }
</script>
<button onclick="goBack()">返回</button>
  • 返回上n次的訪問
<script>
function goBack()
  {
     history.go(-2); //-1表示上次夯膀,-2表示上上次诗充,以次類推
  }
</script>
<button onclick="goBack()">返回上上次</button>

Location對(duì)象

  • 刷新當(dāng)前頁(yè)面
    reload方法刷新當(dāng)前頁(yè)面
<span>當(dāng)前時(shí)間:</span>
<script>
  var d = new Date();
  document.write(d.getHours());
  document.write(":");
  document.write(d.getMinutes());
  document.write(":");
  document.write(d.getSeconds());
  document.write(":");
  document.write(d.getMilliseconds());
function refresh(){
  location.reload();
}
</script>
<button onclick="refresh()">刷新當(dāng)前頁(yè)面</button>
  • 跳轉(zhuǎn)到另一個(gè)頁(yè)面
<script>
function jump(){
  //方法1
  //location="/"; 
  //方法2
  location.assign("/");   
}
</script>
<button onclick="jump()">跳轉(zhuǎn)到首頁(yè)</button>
  • Location的其他屬性
<script>
function p(s){
  document.write(s);
  document.write("<br>");
}
p("協(xié)議 location.protocol:"+location.protocol);
p("主機(jī)名 location.hostname:"+location.hostname);
p("端口號(hào) (默認(rèn)是80,沒有即表示80端口)location.port:"+location.port); 
p("主機(jī)加端口號(hào) location.host:"+location.host);
p("訪問的路徑  location.pathname:"+location.pathname);
p("錨點(diǎn) location.hash:"+location.hash);
p("參數(shù)列表 location.search"+location.search); 
</script>

彈出框

  • 警告框 alert
<script>
function register(){
   alert("注冊(cè)成功");
}
</script>
<button onclick="register()">注冊(cè)</button>
  • 確認(rèn)框 confirm
    確認(rèn)框 confirm诱建,常用于危險(xiǎn)性操作的確認(rèn)提示其障。 比如刪除一條記錄的時(shí)候,彈出確認(rèn)框
    confirm返回基本類型的Boolean true或者false
<script>
function del(){
var d = confirm("是否要?jiǎng)h除");
alert(typeof d + " " + d);
}
</script>
<button onclick="del()">刪除</button>
  • 輸入框 prompt
    輸入框 prompt涂佃,用于彈出一個(gè)輸入框,供用戶輸入相關(guān)信息蜈敢。 因?yàn)閺棾龅慕缑娌⒉缓每垂架苡锌赡芎途W(wǎng)站的風(fēng)格不一致,所以很少會(huì)在實(shí)際工作中用到抓狭。
<script>
function p(){
var name = prompt("請(qǐng)輸入用戶名:");
alert("您輸入的用戶名是:" + name);
}
</script>
<button onclick="p()">請(qǐng)輸入用戶名</button>

計(jì)時(shí)器

  • setTimeout 只執(zhí)行一次
<script>
function printTime(){
  var d = new Date();
  var h= d.getHours();
  var m= d.getMinutes();
  var s= d.getSeconds();
  document.getElementById("time").innerHTML= h+":"+m+":"+s; 
}
function showTimeIn3Seconds(){
   setTimeout(printTime,3000);  
}
</script>
<div id="time"></div>
<button onclick="showTimeIn3Seconds()">點(diǎn)擊后3秒鐘后顯示當(dāng)前時(shí)間伯病,并且只顯示一次</button>
  • setInterval 不停地重復(fù)執(zhí)行
<p>每隔1秒鐘,打印當(dāng)前時(shí)間</p>   
<div id="time"></div>   
<script>   
function printTime(){
  var d = new Date();
  var h= d.getHours();
  var m= d.getMinutes();
  var s= d.getSeconds();
  document.getElementById("time").innerHTML= h+":"+m+":"+s;   
}   
var t = setInterval(printTime,1000);  
</script>
<br><br>
  • clearInterval 終止重復(fù)執(zhí)行
    通過clearInterval終止一個(gè)不斷重復(fù)的任務(wù)
    本例否过,當(dāng)秒是5的倍數(shù)的時(shí)候午笛,就停止執(zhí)行
<p>每隔1秒鐘,打印當(dāng)前時(shí)間</p>   
<div id="time"></div> 
<script> 
var t = setInterval(printTime,1000);
function printTime(){
  var d = new Date();
  var h= d.getHours();
  var m= d.getMinutes();
  var s= d.getSeconds();
  document.getElementById("time").innerHTML= h+":"+m+":"+s;
  if(s%5==0)
     clearInterval(t);
}
</script>
<br>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末苗桂,一起剝皮案震驚了整個(gè)濱河市药磺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌煤伟,老刑警劉巖癌佩,帶你破解...
    沈念sama閱讀 219,039評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異便锨,居然都是意外死亡围辙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,426評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門放案,熙熙樓的掌柜王于貴愁眉苦臉地迎上來姚建,“玉大人,你說我怎么就攤上這事吱殉〉г” “怎么了?”我有些...
    開封第一講書人閱讀 165,417評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵考婴,是天一觀的道長(zhǎng)贩虾。 經(jīng)常有香客問我,道長(zhǎng)沥阱,這世上最難降的妖魔是什么缎罢? 我笑而不...
    開封第一講書人閱讀 58,868評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上策精,老公的妹妹穿的比我還像新娘舰始。我一直安慰自己,他們只是感情好咽袜,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,892評(píng)論 6 392
  • 文/花漫 我一把揭開白布丸卷。 她就那樣靜靜地躺著,像睡著了一般询刹。 火紅的嫁衣襯著肌膚如雪谜嫉。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,692評(píng)論 1 305
  • 那天凹联,我揣著相機(jī)與錄音沐兰,去河邊找鬼。 笑死蔽挠,一個(gè)胖子當(dāng)著我的面吹牛住闯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播澳淑,決...
    沈念sama閱讀 40,416評(píng)論 3 419
  • 文/蒼蘭香墨 我猛地睜開眼比原,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了杠巡?” 一聲冷哼從身側(cè)響起量窘,我...
    開封第一講書人閱讀 39,326評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氢拥,沒想到半個(gè)月后绑改,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,782評(píng)論 1 316
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡兄一,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,957評(píng)論 3 337
  • 正文 我和宋清朗相戀三年厘线,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片出革。...
    茶點(diǎn)故事閱讀 40,102評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡造壮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出骂束,到底是詐尸還是另有隱情耳璧,我是刑警寧澤,帶...
    沈念sama閱讀 35,790評(píng)論 5 346
  • 正文 年R本政府宣布展箱,位于F島的核電站旨枯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏混驰。R本人自食惡果不足惜攀隔,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,442評(píng)論 3 331
  • 文/蒙蒙 一皂贩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧昆汹,春花似錦明刷、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,996評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至映皆,卻和暖如春挤聘,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背捅彻。 一陣腳步聲響...
    開封第一講書人閱讀 33,113評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工檬洞, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沟饥。 一個(gè)月前我還...
    沈念sama閱讀 48,332評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像湾戳,于是被迫代替她去往敵國(guó)和親贤旷。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,044評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 第1章 認(rèn)識(shí)JS JavaScript能做什么砾脑?1.增強(qiáng)頁(yè)面動(dòng)態(tài)效果(如:下拉菜單幼驶、圖片輪播、信息滾動(dòng)等)2.實(shí)現(xiàn)...
    mo默22閱讀 1,295評(píng)論 0 5
  • BOM是瀏覽器對(duì)象模型 Window對(duì)象 BOM 的核心對(duì)象是window韧衣,它表示瀏覽器的一個(gè)實(shí)例盅藻。 在瀏覽器中,...
    shanruopeng閱讀 442評(píng)論 0 1
  • window對(duì)象 瀏覽器的一個(gè)實(shí)例畅铭。在瀏覽器中氏淑,window對(duì)象有雙重角色,既是通過JavaScript訪問瀏覽器...
    soso101閱讀 265評(píng)論 0 0
  • window 尺寸: 對(duì)于Internet Explorer硕噩、Chrome假残、Firefox、Opera 以及 Sa...
    0han閱讀 252評(píng)論 0 0
  • 二戰(zhàn)后的柏林眶俩,15歲的麥克遇見36歲的漢娜,他處于虛弱狀態(tài)快鱼,急需溫暖颠印,他倒地嘔吐纲岭,她扶起他,她說嗽仪,“孩子荒勇,起來,沒...
    學(xué)徒賢芳閱讀 519評(píng)論 2 3