14-Web API/BOM(浏览器对象模型)

1 Web API

API的概念

API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

  • 任何开发语言都有自己的API
  • API的特征输入和输出(I/O)
  • API的使用方法(console.log())

Web API的概念

浏览器提供的一套操作浏览器功能和页面元素的API(BOM和DOM)

此处的Web API特指浏览器提供的API(一组方法),Web API在后面的课程中有其它含义

2 BOM(浏览器对象模型)

2.1 BOM的概念

BOM(Browser Object Model) 是指浏览器对象模型,浏览器对象模型提供了独立于内容的、可以与浏览器窗口进行互动的对象结构。BOM由多个对象组成,其中代表浏览器窗口的Window对象是BOM的顶层对象,其他对象都是该对象的子对象。

我们在浏览器中的一些操作都可以使用BOM的方式进行编程处理,

比如:刷新浏览器、后退、前进、在浏览器中输入URL等

2.2 BOM的顶级对象window

window是浏览器的顶级对象,当调用window下的属性和方法时,可以省略window

注意:window下一个特殊的属性 window.name

2.3三个对话框

1 alert(“内容”) 弹出框
2 confirm(“提示信息”) 确认框 确定返回true 取消返回false
3 prompt(“提示信息”,“默认值”) 输入框 返回数值为字符串

     window.alert("您好啊");
     //注意:弹出框是具有阻塞行为的
     
     //prompt([描述信息],[默认值]);
     window.prompt("请输入账号");
     
     //返回boolean值 
	 //confirm([描述信息]);
     var result=window.confirm("你确定退出吗");
     console.log(result)

2.4 两个定时器

1 setTimeout()和clearTimeout()
在指定的毫秒数到达之后执行指定的函数,只执行一次

	var a = setTimeout(function(){
	 	console.log("heihei");
	 },5000);
	
	clearTimeout(a)

2 setInterval()和clearInterval()

// 创建一个定时器,每隔1秒调用一次
var timerId = setInterval(function () {
  var date = new Date();
  console.log(date.toLocaleTimeString());
}, 1000);

// 取消定时器的执行
clearInterval(timerId);

2.5 onload onunload onbeforunload事件

window.onload = function(){
    console.log("页面加载完成"); 
}
  // 页面关闭后触发
window.onunload=function(){
	alert("哈哈");
}

// 页面关闭前触发
window.onbeforunload=function(){
	alert("哈哈");
}

2.6 location 地址对象

location对象是window对象下的一个属性,时候的时候可以省略window对象
location可以获取或者设置浏览器地址栏的URL

URL统一资源定位符 (Uniform Resource Locator, URL)

scheme://host:port/path?query#fragment
scheme:通信协议
	常用的http,ftp,maito等
host:主机
	服务器(计算机)域名系统 (DNS) 主机名或 IP 地址。
port:端口号
	整数,可选,省略时使用方案的默认端口,如http的默认端口为80。
path:路径
	由零或多个'/'符号隔开的字符串,一般用来表示主机上的一个目录或文件地址。
query:查询
	可选,用于给动态网页传递参数,可有多个参数,用'&'符号隔开,每个参数的名和值用'='符号隔开。例如:name=zs
fragment:信息片断
	字符串,锚点.
<input type="button" value="显示效果" id="btn" />
	<script>

    console.log(window.location);
    console.log(window.location.hash);
    console.log(window.location.host);
    console.log(window.location.hostname);
    console.log(window.location.pathname);
    console.log(window.location.port);
    console.log(window.location.protocol);
    console.log(window.location.search);

onload=function(){
	document.getElementById("btn").onclick=function(){
		location.href="https://music.163.com";
		location.assign("https://music.163.com");
		location.reload();
		location.replace("https://www.baidu.com");
	}
}

    // location:地址对象
	// loaction.href url读
	// location.href = "http://www.baidu.com" url写
	// location.replace("http://www.baidu.com") 重新加载	
	// location.reload(); 刷新
	</script>

2.7 history对象

history.back()
history.forward()
history.go()

2.8 navigator对象

//通过userAgent可以判断用户浏览器的类型
console.log(window.navigator.userAgent);
//通过platform可以判断浏览器所在的系统平台类型.
console.log(window.navigator.platform);
大家都知道, Windows API是Windows操作系统的一系列的底层函数,是操作系统提供给用户进入操作系统核心进行高级编程的途径, 虽然微软在 Microsoft Visual Studio 6.0 及以下版本中提供了一个用于API浏览的API Text Viewer, 不过功能十分简陋, 部分声明有错误, 而且提供不够充足;而在 Microsoft Visual Studio 7.0 (.net) 及以上版本中为了达到跨平台、安全等一系列新特性,微软已经写好了一个内容丰富的受管制的代码类集合(.net基类库), 来完成以前要通过Windows API来完成的绝大多数任务, 虽然如此但还是有相当一部分功能必需调用Windows API来完成(如果你是VB.net或C#使用者, 强烈建议你尽可能使用.net基类库来完成你的工作); MSDN 中只有部分API的使用帮助, 而且并没有可立即复制到IDE中的API声明, 要使用某个函数不但要很好的了解这个函数的调用方法, 而且需要手动把声明转换成相应语言的API声明方式。于是我就将自己以前写的API浏览软件进行了适当的改动,让它提供上面的需求。它与 Microsoft Visual Studio 6.0 自带的浏览器相比有如下增强: 1、函数、类型、常数可自由删除、添加、编辑。 2、自动代码整理功能可免去你把声明复制到IDE后还需手工整理的麻烦。 3、雷达功能,可查看任意窗口句柄与类名,可作编程时的辅助工具。 4、在函数中能实现类型自动探测、搜索、添加。 5、在查询中支持使用通配符"?"、"*"、"[]"、"[^]"来进行代替一个或多个字符,包含不包含指定字符来查询。 6、可直接将函数、类型、常数转换成VB.net/C#/易语言声明方式。 7、添加函数时可智能自动添加与函数相关的类型、注释, 添加类型时自动添加类型中的类型, 类型中的常数, 常数中的常数功能, 大大加快了函数与相关类型、常数的复制添加速度。 8、可以根据功能分组浏览声明。   9、收藏夹功能,可将一组(功能相关)API声明添加到收藏夹。 10、颜色采集功能,可以采集当前屏幕上指定点的颜色。 11、可查看同api功能的.net类库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值