首先,看一段調用全屏、退出全屏的代碼。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button type="button" name="button">全屏</button>
<button type="button" name="button">退出全屏</button>
</body>
<script type="text/javascript">
document.querySelectorAll("button")[0].onclick = function(){
console.log(document.body.requestFullscreen)
document.body.webkitRequestFullScreen();
}
document.querySelectorAll("button")[1].onclick = function(){
document.webkitCancelFullScreen();
}
</script>
</html>
h5新增的visibilitychange可以判斷頁面當前是否是顯示狀態。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<button type="button" name="button">全屏</button>
<button type="button" name="button">退出全屏</button>
</body>
<script type="text/javascript">
console.log(document.visibilityState);
document.addEventListener("visibilitychange",function(){
console.log(document.visibilityState);
console.log(document.hidden);
})
</script>
</html>
存儲
分為本地存儲 localStorage和會話存儲sessionStorage,在一定程度上解決了cookie的不便利性。存儲上限5M。
存儲模式:鍵值對,API靈活。
cookie只能存儲4kb,api不方便,都是document.cookie,操作的一長串字符串,需要自己分割,會被強制發送到服務器。
localStorage除非手動清除,否則永久存在,沒有超時時間。
sessionStorage是只會在繪畫期間有效,localStorage永久有效。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
var obj ={age:12,address:"北京"};
console.log(localStorage);
localStorage.setItem("user","admin");
localStorage.setItem("desc",JSON.stringify(obj));
console.log(localStorage.getItem("user"));
console.log(JSON.parse(localStorage.getItem("desc")));
localStorage.setItem("user","admin");
localStorage.removeItem("user");
</script>
</html>
位置
geolocation是有關用戶隱私的API,需要得到用戶的同意才能有效。
為了安全限定,要求正式網站必須使用https協議。
自行測試使用localhost 訪問(注:IP地址不可)
服務器不穩定。
在手機上訪問穩定性和精確度會高很多。
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
</body>
<script type="text/javascript">
console.log(navigator)
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(coords){
console.log(coords)
},function(err){
});
}
</script>
</html>
navigator.geolocation.getCurrentPosition(successCallback,errorCallback[,options])
successCallback 成功回調函數
errorCallback 失敗回調函數