1 BOM(Browser Object Model):浏览器对象模型。BOM并不是标准,因为它所关注的是浏览器的整体结构,所以每个浏览器都有自己的BOM,它们并不是完全一致的。
(1.1)window对象
windows对象是BOM模型中的顶层对象。
(1.2)location对象
location对象用来管理当前打开窗口的URL信息。
(1.3)navigator对象
navigator对象是一个可以刺探浏览器用户“隐私”的对象,当然这些隐私只是一些操作系统和浏览器信息。
(1.4)document对象
document对象包含了页面中的可见内容,例如页面标题栏(title)和表单(form)等。
需要注意的是:BOM对象是针对浏览器对象模型,不同的浏览器获取同样的数据可能会通过不同的属性名,并且相同的属性名在不同的浏览器中会有不同的解释。所以一中好的做法是尽量使用DOM的属性和方法,避免使用浏览器特定的属性和方法。
2 DOM(Document Object Model):文档对象模型。与BOM关注浏览器的整体不同,DOM只关注浏览器所载入的文档,也就是HTML标签对象。是一个标准,与平台和语言无关,来对文档进行管理。
(2.1)对于html文档模型的加载来说,浏览器会依据HTML代码,从上到下顺序的产生响应的DOM模型,而JavaScript代码却可以在任何地方执行。这样如果在<head>中调用未生成的元素,会产生错误。例如:
(2.2)因为DOM模型的构建与JavaScript代码的执行是串行的,因此如在<head>中执行了大量的脚本代码,可能会阻碍浏览器对页面的可视效果。解决的办法是尽量把JavaScript放在HTML代码的最后。
(2.3)document.getElementById("id"):通过节点的Id号来查找节点。这里需要注意:如果返回了一个错误的值时,不一定是不存在指定id值的元素,而可能是存在了多个。
(2.4)document.getElementByTagName("div"):通过tagName来获取当前节点的所有子节点中标签名是tagName的所有子节点列表。注意:该方法并不是document专有的,每个节点都有这个方法。
(1.1)window对象
windows对象是BOM模型中的顶层对象。
//windows对象的常用方法 //弹出一个提示窗口来显示信息 alert("提交成功"); //弹出一个确认窗口来显示这个信息 confirm("是否提交以上信息"); //弹出一个输入窗口来接收用户的输入信息 prompt("请输入姓名", "ych"); //通过程序控制打开一个指定URL地址的浏览器窗口 open("http://www.baidu.com", "_black"); //延时执行函数 setTimeout(function(){alert("时间到");}, 1000); //在指定的间隔时间后,重复执行函数 setInterval(function(){alert("时间到");}, 1000);
(1.2)location对象
location对象用来管理当前打开窗口的URL信息。
alert(location.href);//获取或者设置当前窗口的URL地址 //href(Hypertext Reference):超文本引用 //当前窗口打开一个百度页面 window.location.href = "http://www.baidu.com"; location.reload();//刷新当前页面
(1.3)navigator对象
navigator对象是一个可以刺探浏览器用户“隐私”的对象,当然这些隐私只是一些操作系统和浏览器信息。
//naviagtor.userAgent:获取操作系统的版本、浏览器类型/版本等信息 //naviagtor.cookieEnabled:获取浏览器是否支持Cookie //naviagtor.platform:获取用户所使用的操作系统类型 //naviagtor.javaEnabled():获取浏览器是否支持Java //获取浏览器信息 function getBrowserInfo(){ var browserRE = /(firefox|opera|msie|safari).?([0-9]\.?)+/;//正则表达式中的“.”表示除了换行符以外的所有字符 return navigator.userAgent.toLowerCase().match(browserRE)[0]; } //获取操作系统信息 function getOSInfo(){ var os = "未知"; var userInfo = navigator.userAgent; var windows = (navigator.platform == "Win32") || (navigator.platform == "Windows"); os = null; if(windows){ var win2K = userInfo.indexOf("Windows NT 5.0") > -1; if(win2K) os = "windows 2000" var winXP = userInfo.indexOf("Windows NT 5.1") > -1; if(winXP) os = "windows XP"; var winVista = userInfo.indexOf("Windows NT 6.0") > -1; if(winVista) os = "windows vista"; var win7 = userInfo.indexOf("Windows NT 6.1") > -1; if(win7) os = "windows 7"; } return os; } alert("您所使用的\n浏览器是:" + getBrowserInfo() + "\n操作系统是:" + getOSInfo());
(1.4)document对象
document对象包含了页面中的可见内容,例如页面标题栏(title)和表单(form)等。
需要注意的是:BOM对象是针对浏览器对象模型,不同的浏览器获取同样的数据可能会通过不同的属性名,并且相同的属性名在不同的浏览器中会有不同的解释。所以一中好的做法是尽量使用DOM的属性和方法,避免使用浏览器特定的属性和方法。
2 DOM(Document Object Model):文档对象模型。与BOM关注浏览器的整体不同,DOM只关注浏览器所载入的文档,也就是HTML标签对象。是一个标准,与平台和语言无关,来对文档进行管理。
(2.1)对于html文档模型的加载来说,浏览器会依据HTML代码,从上到下顺序的产生响应的DOM模型,而JavaScript代码却可以在任何地方执行。这样如果在<head>中调用未生成的元素,会产生错误。例如:
<html> <head> alert(document.getElementById("n"));</head> <body> <div id="n"></div> </body> </html>得到的结果为:null。
(2.2)因为DOM模型的构建与JavaScript代码的执行是串行的,因此如在<head>中执行了大量的脚本代码,可能会阻碍浏览器对页面的可视效果。解决的办法是尽量把JavaScript放在HTML代码的最后。
(2.3)document.getElementById("id"):通过节点的Id号来查找节点。这里需要注意:如果返回了一个错误的值时,不一定是不存在指定id值的元素,而可能是存在了多个。
(2.4)document.getElementByTagName("div"):通过tagName来获取当前节点的所有子节点中标签名是tagName的所有子节点列表。注意:该方法并不是document专有的,每个节点都有这个方法。