|
16
|
| Herman Schaaf · 技术社区 · 15 年前 |
|
|
1
8
如果通过javascript直接分配事件处理程序,
解决方法是
如果您是直接在元素上的事件处理程序,则可以提供
这是跨浏览器,如果你必须走那条路线,也可以。
使用
|
|
|
2
7
这里有一个微妙的问题:如果您的站点有多个帧(或iframes),并且有时在帧之间有javascript代码通信,即(6和7,不太确定8和9)对于javascript对象的“沿袭”非常挑剔,即使是没有任何dom引用的对象。这意味着,如果您将几乎任何类型的javascript对象(字符串和数字通常都可以,但即使是日期实例在过去也会导致我出现问题)从一个帧传递到另一个帧,如果在某个时间点以后 来源 框架被更新为一个新的页面,如果目标页面试图与该通信对象混淆,那么它将得到一个异常。火狐对这类事情相当熟悉,但是当IE垃圾收集旧页面时,它不喜欢引用页面创建的javascript对象。 |
|
|
3
7
IE(8或更低,不确定是否为9)无法处理像数组这样的字符串中的字符访问,如:
在大多数浏览器中,这将警告“c”,但ie警告“undefined”。出于跨浏览器的原因,您应该使用charat函数:
这也会提醒IE中的“C”。 另一个小的区别是对象和数组中的尾随逗号。这在大多数浏览器中都有效,但会在IE中引发错误:
以及
如果你不知道的话,这会很刺激。这两个问题可能都是我经常遇到的问题,因为我已经习惯了Python,但仍然值得注意。 |
|
|
4
6
将字符串与+
在MSIE上可能需要几分钟。我曾经做过一个测试,Opera和火狐在几秒钟后就完成了,但是MSIE在20分钟后还没有完成! 但是,如果使用数组,msie速度很快:
对不起,但找不到我现在发的帖子。 |
|
|
5
5
IE9之前的IE JS引擎是 缓慢的 . 真的,真的很慢。比Mozilla和WebKit实现慢数百到数千倍。 这在动画计时器的最小分辨率、完成排序和(如@some指出的)假字符串连接的时间以及网站性能受JS引擎本身速度限制的其他任何地方都会显示出来。 |
|
|
6
4
了解Internet Explorer如何处理DOM树分析和导航,尤其是在分析httpobjects时,通常也存在这样一个问题:
- |
|
|
7
4
Internet Explorer。 更严重的是,后面的逗号答案在另一个答案中是好的。使用一个框架可以有所帮助,但这并不是一劳永逸。您将不得不处理跨浏览器问题。因此,请确保在您关心的所有版本中进行测试。 |
|
|
8
4
IE不支持自定义事件,只支持DOM事件(即使在9测试版中也是如此)。 |
|
|
9
2
在编写一个必须支持IE的站点时,最常见的错误是忘记在每个版本中进行测试。 您需要确保您的所有代码都在IE6(如果您计划支持它)、IE7、IE8和IE8-in-IE7模式下工作。还有IE9(现在是beta版)。 测试多个版本的IE有几个捷径,但是要注意,它们并不总是给出与真实用户所看到的完全相同的结果;唯一确定的方法是在真实版本的IE中测试它,不管这有多痛苦。 |
|
|
10
1
注意处理iframe边框的方式等细微差别( How to Remove an IFrame border in Javascript )。 我想是 internet-explorer tag 应该给你很多好的例子。 |
|
|
11
1
如果你想测量一件事需要多长时间,你应该知道时间的分辨率在IE中只有15毫秒,在FF、Chrome和Opera中只有1毫秒。 您可以使用以下代码自己测试:
它已经这样多年了,仍然适用于msie8,但不是常识。 lincolnk 链接到 a blog post by John Resig 从2008年11月12日在上述评论。当我读到这篇文章的时候,我忍不住笑了一下,因为我已经知道它很多年了,早在Netscape是普通浏览器的时候。 当我想到它的时候,我有一个非常微弱的内存,从一开始Netscape的分辨率也很低,可能是通过读取每秒更新18.2次的系统时间,但后来改变了它,所以它给出了1毫秒分辨率的时间。然而,既然这应该发生在15年前,我不确定它是否正确,我也不打算去证明它。 为了可读性,我使用上面的gettime而不是一元运算符 |
|
|
12
0
除非控制台窗口打开,否则IE 7/8无法理解console.log/dir。如果将JS留在prod环境中,这很容易破坏JS。总是有
|
|
|
13
-1
|
|
Error 1004 · 使用VBA从HTML中提取信息 8 年前 |
|
|
myroslav · IE11中Angular 4应用程序崩溃 8 年前 |
|
|
sankar · IE不显示abbr标记的边框底部 8 年前 |