什么是浏览器对象模型?

  浏览器对象模型(BOM Browser Object Model)是JavaScript的组成之一,它提供了独立于内容和浏览器窗口进行交互的对象,使用浏览器对象模型可以实现与HTML的交互。

JavaScript中对象分为:

本地对象(native object)、内置对象(built-in object)、宿主对象(host object)。其中本地对象和宿主对象大家一般用的比较多。

使用BOM(浏览器对象模型)可以实现什么功能?

  (1)弹出新的浏览器窗口

  (2)移动、关闭浏览器窗口及调整窗口的大小。

  (3)在浏览器窗口中实现前进和后退方法。

一个浏览器可以看成是一个window对象,下面为大家一一介绍常用三大属性的介绍及使用

  1)document:提供当前页面的URL信息(比如:http://cn.bing.com/)并且可以重新加载当前页面货载入新页面。

    语法如下:

document.URL

  2)location:location常用属性是href,通过对此属性设置不同的网址,从而达到跳转功能。

      语法如下:

 <!--首先定义一个函数-->
function myclick() {
//定位到百度首页
location.href = "http://www.baidu.com";
}

  3)history:可以实现前进后退及刷新功能

 history.go(0)    //刷新当前页面
history().go(-1) //后退一页
history().go(1) //前进一页

下面重点来了,定时函数

定时函数对我们以后的开发web工程师非常有用处的,下面介绍一下定时函数的常用方法及使用:

  定时函数的常用方法:

    1)setTimeout():用于在指定的毫秒后调用函数或者计算表达式;

      语法:

      setTimeout("函数名称",毫秒);

    2)setinterval():可按照指定的周期来调用函数或者计算表达式;

      语法:

      setInterval("函数名称",周期性调用函数之间间隔秒数);

下面简单书写两个关于定时器的例子:

   1.setTimeout()

 //定义一个函数
function Refresh()
{
Time.innerHTML=new Date().toLocaleString()+' 星期'+'日一二三四五六'.charAt(new Date().getDay());
setTimeout("Refresh()",1000);
}
//调用函数,逗号后为毫秒数(一分钟=60秒=60000毫秒)
var timer=setTimeout("Refresh()",1000);

  2.setinterval()

 //定义一个函数
function Refresh()
{
var newDateObj = new Date();
document.form1.txt_Time.value=newDateObj.toLocaleString();//使用当前区域设置并已被转换为字符串
}
var MyInterval=setInterval("Refresh()",1000);

也可以通过定时器来写一个自娱自乐的小程序,

  可以每隔1秒换一张图片

 <head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>时间函数</title>
<script type="text/javascript">
//定义变量,存储图片名称
var i = 1;
function go() {
if (i<2) {
i++;
} else {
i= 1;//图片循环打印完成再次赋初值1
}
//获取id为“ima”的doc对象,并为src属性再次赋值(路径)
var doc = document.getElementById("ima");
doc.src = 'images/iag/' + i + '.jpg';
}
setInterval(go, 1000);
</head>
<body>
//src为图片路径,所以图片名称均为数组(因为在这里便于逐步遍历出来)
<img src="data:images/iag/1.jpg" width="500px" height="600px" id="ima"/>
</body>

最新文章

  1. (转)as3效率优化
  2. HDU1532 Drainage Ditches 网络流EK算法
  3. hdu 1116 并查集和欧拉路径
  4. svn使用相关问题:eclipse插件,加锁,解锁,偷锁,更新不了,记住密码
  5. [cocos2d-x 2.0.4][iOS7]不能全屏问题
  6. 使用libCurl实现断点下载
  7. yii 验证用户名是否存在 array(&quot;name&quot;,&quot;unique&quot;,&#39;message&#39;=&gt;&#39;用户名已经存在&#39;),
  8. OOA/OOD/OOP(转)
  9. Winpcap网络编程十之Winpcap实战,两台主机通过中间主机通信
  10. git rebase 使用
  11. Maven parent.relativePath
  12. 题目--统计一行文本的单词个数(PTA预习题)
  13. 手机端-ajax跨域请求滚屏分页
  14. EntityFreamWork 项目总结
  15. noip2016 天天爱跑步
  16. 半年收入超2亿RMB 独立游戏开发者的艰苦创业路
  17. Codeforces Round #441 (Div. 2, by Moscow Team Olympiad) F. High Cry(思维 统计)
  18. 设计模式 - 抽象工厂模式(abstract factory pattern) 具体解释
  19. Ubuntu更新提示哈希和不匹配“Hash Sum mismatch”
  20. HDU2121:Ice_cream’s world II (虚根+有向图最小生成树)

热门文章

  1. python变量、对象和引用你真的明白了吗
  2. 新霸哥带你轻松玩转Oracle数据库
  3. DSP学习资料:基于6U VPX的 XC7VX690T+C6678的双FMC接口雷达通信处理板
  4. Scrapy-redis分布式+Scrapy-redis实战
  5. ifconfig命令返回找不到“-bash: ifconfig: command not found”
  6. Nagios监控系统部署(源码)(四)
  7. Codeforces1204C. Anna, Svyatoslav and Maps (贪心 + Floyd)
  8. 【30分钟学完】canvas动画|游戏基础(extra1):颜色那些事
  9. HDU-4289-Control(最大流最小割,拆点)
  10. Codeforces Round #569 (Div. 2) C. Valeriy and Deque