2011-08-11 23 views
0

这是一个由两部分组成的问题。如何在编写Javascript时处理IE浏览器

为什么IE在处理Javascript时需要这么多特殊待遇?除了Firebug Lite之外,还有没有什么技巧,资源和/或系统可以让你的js IE兼容?

+1

你指的是什么特殊待遇?我想不出那么多的JavaScript问题,特别是当你使用像jQuery这样的库时。视觉(CSS)的差异很多,更极端 –

+1

阅读其他人的js代码我经常看到评论,如“需要使IE工作”或“IE扼流圈_x_所以这里是_y_”我猜这里有不是很多这些特殊情况下,但他们肯定在那里,我不知道什么时候期待我需要围绕他们编码。 –

+0

@Pekka - 有一个类似jQuery的库来处理你的特殊处理问题并不意味着这些问题不存在。虽然我同意CSS的东西。 – nnnnnn

回答

2

使用标准化的库,如J-query,所以你不必跳过所有的工作在JavaScript方面的篮球!

此外,雅虎用户界面(YUI)可以让网站在不同的浏览器上看起来非常相似。他们的Grids图书馆工作得很好。

+0

谢谢我现在在看YUI。问题是我在谷歌地图上做了很多自定义代码,我不确定jQuery能做到我需要的所有东西,尽管我已经在某些功能上使用它了。 –

+0

YUI真是太棒了:)它需要一点时间才能习惯如何编码布局,但最终的结果是值得的! – Darkzaelus

+0

是的,它看起来像js位很像jQuery。 –

2

请您详细说明您所指的是什么?

它的核心是JavaScript,在过去的10年里基本上是一样的。如果您担心较旧的IE版本(IE6-7),您可以保持冷静。 IE6与JavaScript 1.5支持发布,所以所有的JS代码应该运行良好。 Mozilla在their MDC site有一个非常好的JS ref文档。在每个页面的底部,通常会列出支持该特定功能的每个浏览器的版本。

但是浏览器之间的差别通常在于DOM执行或事件处理。在属性名称不同的情况下,这些属性主要与元素/滚动位置有关。

要找到使用,检查开发者工具(萤火虫在IE浏览器,开发者工具中的Webkit或开发人员工具栏中IE)为浏览器找到你正在寻找正确的属性。如果您不确定使用debugger;关键字在代码中的JavaScript断点处设置了关键字,或者使用console.log()将某些内容发送到控制台。在IE开发工具栏可以从IE8 +(我认为)。

这些问题大部分已经解决了主要的JavaScript框架如jQuery,MonoTools等。

+0

你是个好人,我正在为此页添加书签 –

2

两个主要的“特殊待遇”的东西,脑海中出现:

  1. 活动。包括事件处理程序的分配,事件对象可用于处理函数的方式以及事件对象的一些属性。请参阅此页获取更多信息:http://www.quirksmode.org/js/introevents.html
  2. Ajax。使用XMLHttpRequestActiveXObject("Microsoft.XMLHTTP")

大多数其他一切都应该罚款。

你可以写自己的一些(相对)简单的辅助函数来获得解决这些问题,或者使用像jQuery库正常化的差异为您服务。如果你把它写自己,一定要测试功能的支持而不是试图以测试其浏览器 - 看到这个(长)文章中的解释:http://jibbering.com/faq/notes/detect-browser/(我敢肯定,还有周围的短的解释,但我可以” T为打扰如果你在你的页面使用jQuery,那么你可以检查即使用此代码

if ($.browser.msie && $.browser.version == '6.0') { 
    //do IE specific code 
} 

此代码,当用户浏览器将成为IE 6只运行找到一个。)

+0

哈哈不用担心,我会做研究,我只需要一个正确的方向。谢谢。 –

1

。0或者你离开这个条件