概述
Window对象
BOM对象的核心是window,它表示浏览器的一个实例。在浏览器中,window对象有双重角色,它既是通过JavaScript访问浏览器窗口的一个接口,又是ESMAScript规定的Global对象。这意味着在网页中定义的任何一个对象,变量,函数,都以window作为其Global对象,因此有权访问parseInt()等方法。
窗口关系及框架(frame)
我们在访问窗口里的框架时,最好采用top而非window(例如:top.frame[0])。
因为top对象始终指向最外层的框架,也就是浏览器窗口。使用它可以确保在一个框架中正确地访问另一个框架。因为对于框架中的任何编写的代码而言,其中的window对象指向的都是那个框架的特定实例,而非最高层框架。
与top相对的另一个window对象是parent。顾名思义,parent(父)对象始终指向当前框架的直接上层框架。
浏览器检测
浏览器检测有三种方法:能力检测,怪癖检测,用户代理(userAgent)检测
能力检测(又称特性检测)的目标不是识别特定的浏览器,而是识别浏览器的能力。
采用这种方式不必顾及特定的浏览器如何如何,只要确定浏览器支持特定的能力,就可以给出解决方案。
推荐使用typeof 操作符用于确定属性是否存在且正确。
怪癖检测的目标是识别浏览器的特殊行为 。但与能力检测不同,怪癖检测是想要知道浏览器存在什么缺陷。这通常需要一小段代码,以确定某个特性不能正常工作。
用户代理(userAgent)检测通过检测用户代理字符串来确定实际使用的浏览器。我们可以通过访问window对象的navigator.userAgent属性访问。在客户端,用户代理检测一般被当做一种万不得已采用的方法,其优先级排在能力检测和怪癖检测之后。
引擎 | 支持的浏览器 |
Gecko | Firefox,Netscape |
WebKit | Safari,Chrome,iOS,Android |
KHTML | Konqueror |
Opera | Opera |
IE | IE8,IE11,Edge |
[^abc]表示匹配非abc的所有字符,^是取反的意思
如果想在后面取出匹配的字符,可以将要取出的正则字符用括号括起来
[?:abc] 匹配abc,但是不记住匹配项。这是为了将abc看做一个整体与后面的运算符一起使用。如表达式“[?:123]?456”可以匹配123456也可以匹配456.
在大多数情况下,识别了浏览器的呈现就足以为我们采取正确的操作提供依据了。可是只有呈现引擎还不能说明存在所需的Javascript功能
最后
以上就是单纯硬币为你收集整理的浏览器window对象与JavaScript浏览器检测的全部内容,希望文章能够帮你解决浏览器window对象与JavaScript浏览器检测所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复