浏览器对象模型


 

1. window对象

window对象是顶级对象(或全局对象)

定义的全局变量或全局函数都会成为window对象的属性和方法,都可以用window对象来调用,在使用时可以忽略window。

1 <script>
2       var a = 123;
3       var fn = function() {alert('执行fn')};
4       console.log(window.a);  //123
5       console.log(window.fn);  //fn
6 </script>

特殊情况1:不要定义全局变量name。因为赋值数组时,数组会自动转换为字符串。

1 <script>
2       var name = ['章三','李四','王五'];
3       console.log(name[0]);  //输出'张'
4 </script>

特殊情况2:不要定义全局变量top。因为top是只读的,只能使用,不能重新设置。

已经被window使用,并且它代表window本身

1 <script>
2       var top = 1;
3       console.log(top);  //输出window对象
4 </script>

2. 对话框

window可以省略

1)alert:window.alert(); 

2)prompt:window.prompt(); 

3)confirm:window.confirm(); 

3. 定时器

1)window.setTimeout(callback, time);

window可以省略。time单位为毫秒。

作用:延迟执行一段程序,只执行一次(定时炸弹),返回一个数字。

1 <script>
2         setTimeout(function(){
3             console.log('bumb!');
4         }, 3000);
5 </script>

定时器的事件不是百分之百精确的,因为要考虑到代码执行顺序问题:当定时器代码和非定时器代码同时存在时,先执行非定时器代码。非定时器代码执行结束后才会执行定时器,此时与定时器设置的延迟时间无关。

1     <script>
2         setTimeout(function(){
3             console.log('bumb!');
4         }, 3000);
5         while(true) {
6         }
7     </script>

延迟时间为0也不例外。

1     <script>
2         setTimeout(function(){
3             console.log('bumb!');
4         }, 0);
5         console.log('a');  //先输出a,再输出bumb!
6     </script>

定时器返回的是一个数字,定时器的标识。

 1     <script>
 2         var flag = setTimeout(function(){
 3             alert('bumb1!');
 4         }, 5000);  //1。表示第几个定时器。
 5         var flag2 = setTimeout(function(){
 6             alert('bumb2!');
 7         }, 5000);  //2
 8         console.log(flag);
 9         console.log(flag2);
10     </script>

2)清除定时器 setTimeout

 1 <body>
 2     <button>清除定时器</button>
 3     <script>
 4         var flag = setTimeout(function(){
 5             alert('bumb1!');
 6         }, 5000);
 7         var btn = document.querySelector('button');
 8         btn.onclick = function() {
 9             clearTimeout(flag);
10         }
11     </script>
12 </body>

3)window.setInterval(callback, time); (常用)

可以重复执行,不清除定时器就会一直执行下去。

细节问题与setTimeout定时器一样。

1     <script>
2         setInterval(function(){
3             console.log(Math.random());
4         },1000);
5     </script>

4)清除定时器 setInterval

 1 <body>
 2     <button>stop</button>
 3     <script>
 4         //调用setInterval时,就会产生一个定时器,并且返回数字标示定时器。
 5         var flag = setInterval(function(){
 6             console.log(Math.random());
 7         },1000);
 8         var btn = document.querySelector('button');
 9         btn.onclick = function() {
10             clearInterval(flag);  //清除定时器
11         }
12     </script>
13 </body>

4. location 操作浏览器地址栏

属性:location.href; 设置或获取地址栏地址

方法:location.reload(); 刷新页面

5.history 操作历史记录

  • 属性:

history.length;  获取历史记录的长度

  • 方法:

history.back();    回退上一个历史记录

history.forward();  前进下一个历史记录

history.go(数字);  正数,表示前进; 负数,表示回退;

6.navigator 获取浏览器信息

属性:navigator.userAgent; 用来获取浏览器的信息

01-21 18:50
查看更多