JavaScript-BOM物件

  • 82
  • 0
  • JS
  • 2020-10-21

所謂的BOM(Browser Object Model)指的就是瀏覽器物件,大部分瀏覽器都有支援這些功能,早期因為沒有標準規範因此常發生跨瀏覽器問題,例如同樣的功能在Chrome可以正常執行但是在IE會出現錯誤,但近年W3C已經將各家瀏覽器納入HTML5標準中,所以逐漸已經不存在跨瀏覽器的問題


 

常用的基礎功能

確認視窗(confirm)

<button id="btn">confirm</button>
	<script type="text/javascript">
		document.getElementById('btn').addEventListener('click',function(){
			if(confirm('是否送出頁面?')){//confirm會回傳true或false
				alert('頁面已送出!');
			}else{
				return;
			}
		})
	</script>

計時器功能

<button id="btnTimeout">setTimeout</button>
	<button id="btnInterval">setInterval</button>
	<script type="text/javascript">
		document.getElementById('btnTimeout').addEventListener('click',function(){
			setTimeout(function(){//setTimeout只會單次執行
				console.log('setTimeout!');
			},2000);//執行間隔為2000毫秒
		});
		document.getElementById('btnInterval').addEventListener('click',function(){
			setInterval(function(){//setInterval會重複執行
				console.log('setInterval!');
			},1000);//執行間隔為1000毫秒
		});
	</script>

依據歷史紀錄切換頁面

<body>
	<a href="JavaScript:history.back()">上一頁</a>
	<a href="JavaScript:history.forward()">下一頁</a>
</body>

Console物件

log:一般log

info:一般資訊

warn:警告

error:錯誤

格式化參數

console.log('name is %s,TEL is %d','bill',123456789);//%s代表輸出字串,%d代表整數
console.log('現在溫度 %.2f度',30.3);//%.2f輸出小數點第二位

log群組

console.group('father');//父群組
		for(var i=0;i<5;i++){
			console.group('son'+i);//子群組
			for(var j=0;j<5;j++){
				console.log(i,j);
			}
			console.groupEnd();//結束子群組
		}
		console.groupEnd();//結束父群組

計算程式執行次數

for(var i=0;i<5;i++){
			console.count('LOOP');
		}
		console.count('LOOP');

堆疊追蹤

可以檢查出函數之間的關係

function func1(){
			func2();
		}
		function func2(){
			func3();
		}
		function func3(){
			console.trace();
		}
		func1();

程式執行時間測量

console.time('time1');//time1是label
		alert('TEST');
		console.timeEnd('time1');

Storage物件

所謂Storage就是瀏覽器內建的資料儲存區,以鍵值方式儲存,以網域為單位管理資料

        var storage=localStorage//將localStorage的傳回值儲存在變數
		storage.setItem('a','1');//設定a鍵
		storage.b='2';//設定b鍵
		storage['c']='3';//設定c鍵
		console.log(storage.getItem('a'));//取得a鍵
		console.log(storage.b);//取得b鍵
		console.log(storage['c']);//取得c鍵

清除Storage

button id="btn">清除Storage</button>
	<p id="result"></p>
	<script type="text/javascript">
		var storage=localStorage;
		document.getElementById('btn').onclick=function(){
			storage.clear();}
	</script>

使用迴圈取出Storage資料

for(var i=0;i<storage.length;i++){
			var k=storage.key(i);
			var v=storage[k];
			console.log(k+':'+v);
}