if(!document.all) 的含义

本文介绍了一种简单有效的方法来识别Internet Explorer浏览器,并区分其不同版本,如IE6、IE7和IE8等。通过JavaScript代码实现,适用于需要进行浏览器兼容性处理的网页应用。
一种一般用作识别IE浏览器的方法.


可以判断兼容性
IE下
if(document.all)
返回 true
firefox下
if(document.all)
返回 false

感谢 sohighthesky 分享的方法

[quote="sohighthesky"]识别ie我用
window.ActiveXObject
!+'\v1'
!-[1,]
现在更喜欢用短的了 :D [/quote]

[quote]
!!window.ActiveXObject&&!window.XMLHttpRequest


var isIE=!!window.ActiveXObject;
var isIE6=isIE&&!window.XMLHttpRequest;
var isIE8=isIE&&!!document.documentMode;
var isIE7=isIE&&!isIE6&&!isIE8;
if (isIE){
if (isIE6){
alert(”ie6″);
}else if (isIE8){
alert(”ie8″);
}else if (isIE7){
alert(”ie7″);
}
}
[/quote]
这段代码主要实现了判断是否为IE浏览器,并在IE浏览器环境下获取页面滚动位置和鼠标位置的功能,以下是对代码各部分含义的详细解析: ### 1. `if (document.all)` `document.all` 是一个在旧版IE浏览器中存在的属性,现代浏览器(如Chrome、Firefox等)已经不支持该属性。因此,通过判断 `document.all` 是否存在,可以粗略地判断当前浏览器是否为IE浏览器。如果 `document.all` 存在,则表示当前使用的是IE浏览器,代码块内的逻辑将会执行。 ### 2. 页面滚动位置的获取 ```javascript x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft; y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop; ``` - **`x` 的计算**:`x` 代表页面水平方向的滚动位置。使用三元运算符来判断 `document.documentElement` 是否存在且 `document.documentElement.scrollLeft` 是否有值。如果条件成立,则将 `document.documentElement.scrollLeft` 的值赋给 `x`;否则,将 `document.body.scrollLeft` 的值赋给 `x`。 - **`y` 的计算**:`y` 代表页面垂直方向的滚动位置。同样使用三元运算符来判断 `document.documentElement` 是否存在且 `document.documentElement.scrollTop` 是否有值。如果条件成立,则将 `document.documentElement.scrollTop` 的值赋给 `y`;否则,将 `document.body.scrollTop` 的值赋给 `y`。 ### 3. 鼠标位置的计算 ```javascript x += window.event.clientX; y += window.event.clientY; ``` - **`window.event`**:`window.event` 是IE浏览器特有的事件对象,用于获取当前事件的相关信息。 - **`clientX` 和 `clientY`**:`clientX` 表示鼠标相对于浏览器窗口可视区域左上角的水平坐标,`clientY` 表示鼠标相对于浏览器窗口可视区域左上角的垂直坐标。 - **最终的 `x` 和 `y`**:将页面滚动位置(`x` 和 `y`)分别加上鼠标相对于浏览器窗口可视区域的坐标(`window.event.clientX` 和 `window.event.clientY`),得到鼠标相对于整个页面的实际坐标。 ### 代码示例 ```javascript if (document.all) { // 获取页面滚动位置 let x = (document.documentElement && document.documentElement.scrollLeft) ? document.documentElement.scrollLeft : document.body.scrollLeft; let y = (document.documentElement && document.documentElement.scrollTop) ? document.documentElement.scrollTop : document.body.scrollTop; // 获取鼠标相对于浏览器窗口可视区域的坐标 x += window.event.clientX; y += window.event.clientY; console.log(`鼠标相对于整个页面的水平坐标: ${x}`); console.log(`鼠标相对于整个页面的垂直坐标: ${y}`); } ``` ### 总结 这段代码通过判断 `document.all` 属性来确定是否为IE浏览器,并在IE浏览器环境下获取页面的滚动位置和鼠标相对于整个页面的实际坐标。需要注意的是,`document.all` 和 `window.event` 都是旧版IE浏览器特有的属性和对象,在现代浏览器中已经不被支持,因此在实际开发中应尽量避免使用这些旧的特性。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值