为了账号安全,请及时绑定邮箱和手机立即绑定

if(window.Node && (obj instanceof Node)){ return true; }这段代码不理解

为什么 

if(window.Node && (obj instanceof Node)){
return true;
}
如果符合if中的条件就直接返回true了呢,符合if中的条件就能说明obj是元素类型了吗?

正在回答

3 回答

这句话这么解释,window.Node,是查看window里是否有这么一个Node对象,然后obj instanceof Node是说明obj是否是Node对象的一个实例,即是不是new Node出来的,满足了这两个条件,obj就是Node类型

2 回复 有任何疑惑可以回复我~
#1

偏爱花开的声音 提问者

听到老师说这个是为了IE9写的,是只有IE9可以这样检测,别的浏览器都不行吗?
2015-10-20 回复 有任何疑惑可以回复我~
#2

子木李 回复 偏爱花开的声音 提问者

也行,window.Node是为了兼容IE的,即其他浏览器可以不写这一句,但是为了能在IE中运行正常,一般都写上,就像窗口的响应事件,其他的浏览器只需写一个event就行,但是为了兼容ie,就得写 e=e||window.event,建议楼主不用太纠结这个问题,毕竟,MS自己都放弃了IE了
2015-10-20 回复 有任何疑惑可以回复我~
#3

偏爱花开的声音 提问者 回复 子木李

谢谢答主~这个问题大概明白了~刚刚又看了一遍老师的视频,还是这段代码,老师说“因为obj可能来自另外一个文档对象,所以不满足if中的条件也不能马上返回false”,这又是怎么回事呢
2015-10-27 回复 有任何疑惑可以回复我~
#4

子木李 回复 偏爱花开的声音 提问者

哦,这个是因为可能有iframe的存在,如果是iframe的话,它就是来自另外一个文档对象了,因为iframe的windows、document对象和当前页面的windows、document对象不是同一个对象
2015-10-27 回复 有任何疑惑可以回复我~
#5

偏爱花开的声音 提问者 回复 子木李

明白了~多谢啦~~
2015-10-30 回复 有任何疑惑可以回复我~
#6

呆呆的地瓜

既然他是其他文本的对象,那么是不是不满足if(window.Node && (obj instanceof Node)),为什么还要返还ture呢??
2016-09-27 回复 有任何疑惑可以回复我~
查看3条回复

哈哈,微软自己都要放弃IE了

0 回复 有任何疑惑可以回复我~
<html></html>


0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

if(window.Node && (obj instanceof Node)){ return true; }这段代码不理解

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信