BOM
什么是BOM
- 所谓BOM就是与浏览器相关的一系列对象,主要被用于管理浏览器窗口和浏览器窗口之间的通信等功能
-
BOM主要是四个对象分别是:
- Window对象
- Navigator对象
- History对象
- Location对象
- 注意: BOM是没有标准的 在一些浏览器里有,一些浏览器里就没有
window对象
- window表示运行HTML页面的浏览器窗口
- window有两个角色一个是作为代表浏览器窗口的对象另一个是Global对象(全局对象)
- 所谓的预定义函数还是全局函数都可以通过window对象直接访问,因为所为的预定义函数指的就是全局对象的方法.
- 在全局作用域中定义的变量或者是对象都是window对象的属性,在全局作用域中定义的函数都是window对象的方法
- 注意:window对象的属性和方法在调用时 - 允许省略'window.'
示例代码:
<body>
<button id="btn">按钮</button>
<script>
// 1.window对象是浏览器窗口中的顶级(全局)对象
// 全局变量 - window对象的属性
var v = 100;
console.log(v);
console.log(window.v);
// 函数 - window对象的方法
function fun(){
console.log('this is function...');
}
fun();
window.fun();
// 删除对象的属性
/*delete window.v;
console.log(window.v);// 100*/
// 2.window对象的属性和方法在调用时 - 允许省略'window.'
// 3.其他5个BOM对象都是作为window对象的属性出现
console.log(window.document);
var btn = document.getElementById('btn');
btn.addEventListener('click',function(){
window.close();
});
</script>
</body>
window对象的属性
示例代码:
<script>
// BOM中其他对象是作为window对象的属性存在
console.log(window.navigator);
console.log(window.location);
console.log(window.history);
console.log(window.document);
// window对象的self属性 - 表示window对象本身(是只读属性)
console.log(window);
console.log(window.self);// 还是window对象
// window对象的innerWidth和innerHeight - 浏览器窗口的内部宽度和高度
console.log(window.innerWidth, window.innerHeight);
</script>
window对象的方法
示例代码:
<body>
<!-- 点击按钮时,打开提示框 -->
<button id="btn">按钮</button>
<div id="dialog"></div>
<script>
// 提示框
// window.alert('xxxxxx');
// 确定框
// var flag = window.confirm('你确定退出吗?');
// alert(flag);
// 输入框
/*var result = window.prompt('请输入你的用户名:');
alert(result);*/
var btn = document.getElementById('btn');
btn.addEventListener('click',function(){
var dialog = document.getElementById('dialog');
dialog.style.display = 'block';
});
/*
* window.setTimeout()和window.clearTimeout()方法
* 该组方法表示延迟执行
* window.setInterval()和window.clearInterval()方法
* 该组方法表示循环(周期)执行
*/
</script>
</body>
navigator对象
- navigator对象就是判断用户的浏览器以及操作系统
- 通过navigator对象的userAgent属性来判断
示例代码:
<body>
<script>
console.log('浏览器的代码名: ' + navigator.appCodeName);
console.log('浏览器的名称: ' + navigator.appName);
console.log('浏览器的平台和版本信息: ' + navigator.appVersion);
console.log('运行浏览器的操作系统平台: ' + navigator.platform);
console.log(navigator.userAgent);
</script>
</body>
History对象
- history对象提供一个属性就是length
- 就是只能得到用户曾经访问过的网址的数量
- history对象有三个方法分别是:
- forward(): 表示前进
- back(): 表示后退
- go(): 是既有前进右有后退
定时器
延迟执行
- 延迟执行就是等一会在执行(通过设置的时间后在执行)
示例代码:
<body>
<script>
console.log('第一个出现的...');
/*
setTimeout(function,delay)方法
* 作用 - 设置一个定时器
* 参数:
* function - 表示延迟执行的代码逻辑
* delay - 表示延迟执行的时间,以毫秒为单位
* 返回值 - 表示当前定时器的标识
* 注意 - 会打乱代码默认的顺序执行流程
*/
var t = setTimeout(function () {
console.log('一花一世界...');
},500);
console.log('应该是第三个出现的...');
</script>
</body>
周期执行
- 周期执行就是反复执行不停的执行
- 只要设置后不停止或强制关闭就会一直执行
- 方法与延迟执行一样一样的
示例代码:
<body>
<script>
console.log('第一个出现的...');
/*
setInterval(function,delay)方法
* 作用 - 设置一个周期执行的定时器
* 参数:
* function - 表示延迟执行的代码逻辑
* delay - 表示延迟执行的时间,以单位为毫秒
* 返回值 - 表示当前定时器的标识
*/
/* setInterval(function () {
console.log('一花一世界...');
},1000);
function fun() {
console.log('一笑一人生...');
setTimeout(fun,1000);
}
fun();*/
// 自调函数方式
(function fun() {
console.log('一叶一孤城...');
setTimeout(fun,1000);
})();
console.log('极乐世界...');
</script>
</body>
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。