Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 什么';IE7/8中$(窗口)和$(文档)之间的区别是什么?_Javascript_Internet Explorer - Fatal编程技术网

Javascript 什么';IE7/8中$(窗口)和$(文档)之间的区别是什么?

Javascript 什么';IE7/8中$(窗口)和$(文档)之间的区别是什么?,javascript,internet-explorer,Javascript,Internet Explorer,我想知道为什么document在所有浏览器中都能正常工作,但是$(window)在IE7或IE8中都不能工作。$(window)和$(document)是围绕完全不同对象的jQuery包装器。功能上的差异仅仅是由于Internet Explorer中的兼容性问题;窗口上的某些事件处理程序不起作用,因此您将它们放在文档上。该窗口与实际的程序窗口有关,而文档与加载的html页面和页面内容区有关。只是一条注释 回到浏览器战争时期,微软和网景公司为他们的浏览器开发了非常不同的事件模型。W3C在某种程度上

我想知道为什么
document
在所有浏览器中都能正常工作,但是
$(window)
在IE7或IE8中都不能工作。

$(window)
$(document)
是围绕完全不同对象的jQuery包装器。功能上的差异仅仅是由于Internet Explorer中的兼容性问题;
窗口
上的某些事件处理程序不起作用,因此您将它们放在
文档
上。

该窗口与实际的程序窗口有关,而文档与加载的html页面和页面内容区有关。

只是一条注释

回到浏览器战争时期,微软和网景公司为他们的浏览器开发了非常不同的事件模型。W3C在某种程度上对这些标准进行了标准化,但该标准是两者之间的折衷,许多东西在双方都是专有的

Netscape死后,Mozilla.org从灰烬中崛起,并催生了一系列浏览器(Mozilla、Firefox、Camino等)。Mozilla很好地实现了W3C标准,因此web开发人员在必要时支持W3C标准和IE专有技术。NN专有的方法很快就被放弃了,因此迅速减少的Netscape Navigator(NN)用户群被束手无策,不得不购买新的浏览器

另一方面,IE拥有大约95%的用户份额,因此微软决定保留其大部分专有行为,同时在其认为必要的地方支持标准。顺便说一句,为了生存,Opera在这段时间非常像IE,Mozilla实现了很多IE的东西,因为同样的原因,它们与标准(还有一些标准)没有冲突

因此,虽然大多数专有NN的东西消失了,IE的东西一直挂在那里,直到微软认为他们可以把它扔掉。即使在最新版本中,仍然有旧IE专有内容的残余,但其中一些仍然存在

为了达到今天的水平,每个人都需要为实现标准而不懈努力。请注意,当IE6发布时,它很容易成为最符合标准的浏览器(但它停留在桂冠上的时间太长了,这是垄断力量的不利一面)

也许微软的这一点是对的,在文档上设置的点击事件不应该出现在窗口中。但很明显,大多数编写标准的人并不这么认为,因此他们的编写方式有所不同(请注意,微软为网络标准机构做出了贡献,因此它有机会发言)


在任何情况下,从版本9来看,IE似乎和其他人一样。据我所知,这种行为直到HTML5()才被标准化,但我很高兴被证明是错误的。

@RobG:嗯,我想这正是他们希望你使用jQuery的方式<代码>文档,而不是
窗口
。(尽管我确实更喜欢
窗口
,实际上。)第二段是非构造性的,忽略了事件模型和DOM对象通常是如何演变和在实践中工作的。好的,注释已删除,但仍然有效,IE不应再被支持/开发。有许多人向微软请愿,要求将其作为浏览器删除,并强制添加到windows中,因为这是一个巨大的安全隐患。我不是IE迷,但IE 8及更低版本仍然占web用户的10%以上,包括许多大公司,因此从一般web开发的角度来看,你还需要在相当一段时间内继续支持它。
doc = $(document),
win = $(window);

doc.on("click",function(){
    alert("test") //working in all browser
})

//but..

win.on("click",function(){
    alert("test") //not working in ie7 ie8
})