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