BOM = Browser Object Model,浏览器对象模型
所有的浏览器都支持window对象,所有js全局变量是window的属性,所有js全局函数是window的方法,
甚至 HTML DOM 的 document 也是 window 对象的属性之一
window.document.getElementById("header");
等同于document.getElementById("header")
获取所有浏览器窗口尺寸(不包括工具栏和滚动条)的通用方法:
试一试
其中第一种是现代通用的,后面两种是照顾IE5,6,7,8的:
var w=window.innerWidth
|| document.documentElement.clientWidth
|| document.body.clientWidth;
var h=window.innerHeight
|| document.documentElement.clientHeight
|| document.body.clientHeight;
以上方法不要直接写在拼字符串中,因为某些方法的不识别会导致js停止解析而拼不上后面的字符串!
window.screen对象可以获取用户屏幕的相关信息,跟浏览器窗口没关系
screen.availWidth
可用的屏幕宽度
试一试
screen.availHeight
可用的屏幕高度
试一试
发现screen.availHeight
获取的屏幕高度并不是实际上的1080,而是1040,让任务栏隐藏了也还这样,不知什么原因!
window.location对象可获取用户当前页面和服务器的相关信息
location.hostname
web主机的域名
试一试
location.pathname
页面路径和文件名
试一试
location.port
主机的端口号
试一试
location.protocol
所使用的web协议(http:// 或 https://)
试一试
location.href
页面的url路径
试一试
location.assign(url)
页面加载一个新的文档(如果写在iframe内部的话,就在此iframe中加载)
试一试
以上测试在服务器上打开和直接打开html文件所得到的结果会有不同!
为了保护用户隐私,对js访问该对象的方法做出了限制。
history.back()
等同于后退按钮
试一试
history.forward()
等同于前进按钮
试一试
来自 navigator 对象的信息具有误导性,不应该被用于检测浏览器版本,这是因为:
1,navigator 数据可被浏览器使用者更改,
2,浏览器无法报告晚于浏览器发布的新操作系统
常用的navigate属性如下:
试一试
str += "window.navigator-----------------------------";
str += "浏览器名称为:"+navigator.appName+"";
str += "浏览器版本为:"+navigator.appVersion+"";
str += "浏览器的代码名称为:"+navigator.appCodeName+"";
str += "用户代理标识为:"+navigator.userAgent+"";
str += "可以使用的mine类型信息为:"+navigator.mineTypes+"";
str += "可以使用的插件信息为:"+navigator.plugins+"";
str += "语言设定为:"+navigator.languages+"";
str += "window对象的属性--------------------------------";
str += "window.document:"+window.document+"";
str += "window.location:"+window.location+"";
str += "window.history:"+window.history+"";
str += "window.closed:"+window.closed+"";
str += "window.opener:"+window.opener+"";
str += "window.self:"+window.self+"";
str += "window.top:"+window.top+"";
str += "window.parent:"+window.parent+"";
str += "window.frames:"+window.frames+"";
str += "window.length:"+window.length+"";
str += "window.offscreenBuffering:"+window.offscreenBuffering+"";
所有浏览器的navigator.appCodeName
都是Mozilla
confirm("text")
用于弹出选择框
试一试
prompt("提示语:", "默认值")
用于弹出输入框
试一试