漫谈 Internet Explorer 5.0 的兼容性问题

  Internet Explorer 5.0 由于其附属在 Windows 98 第二版和 Windows 2000 中,所以它被广泛地使用着。Internet Explorer 5.0 相对 Internet Explorer 4.0 的确有很多优点,特别是 Internet Explorer 5.0 支持新的 W3C 文档对象模型(国际标准),所以在其中编写脚本代码可以方便地兼容其他浏览器。当然,我们使用的 Internet Explorer 4.0 通常是 Internet Explorer 4.01 而我们使用的 Internet Explorer 5.0 在 Windows 2000 中的版本是 Internet Explorer 5.01。不过这并不影响我所要讲的兼容性问题。
  最明显的兼容性问题就是基于码表的输入法。基于码表的输入法在其他程序中输入汉字都很正常,但是,在 Internet Explorer 5.0(包括 5.01 版)中就不正常。具体表现为:当输入好一段文字然后再输入一个标点的时候,这个标点是输入了。但是在继续输入汉字的时候,这个标点又被覆盖了。这样在输入汉字的时候就很不方便。
  后来在 Internet Explorer 5.5 里面这个兼容性问题就被解决掉了。Internet Explorer 5.5 首先是在 Windows Me 里面作为附带浏览器的。我最近才知道,Windows Me 是微软为了要推出一个新的操作系统而出品的。当时微软觉得 XP 的发布遥遥无期,但 Windows 98 这一家用操作系统的新版本 Windows Me 又因为其他任务紧而被多次延期。后来微软感到实在拖不下去了,于是就草草发布了 Windows Me 来凑数。所以 Windows Me 拥有 XP 系统同样拥有的系统还原功能。Internet Explorer 5.5 也是一个过渡版本,拥有 6.0 版的某些功能。所以 Windows Me 可以说就是 Windows 98 和 Windows XP 之间的过渡版本。
  在 Internet Explorer 5.0 中的另一个问题就是在输入汉字的时候,某些输入框中的字的大小总是会变得很难看,原因估计是代码页的问题。现在在 Internet Explorer 5.5 和 6.0 中就没有这些问题了。
  不过,Internet Explorer 5.5 到底在速度上比 Internet Explorer 6.0 要快多了。所以我到现在还在用 Internet Explorer 5.5,而不用 6.0 版。
  我曾发现过一个有趣的现象:Internet Explorer 5.0 版在操作系统是 Windows 2000/XP 的时候,显示 Microsoft San Serif 字体,10pt 大小,反映出来的宋体大小是 10.5pt。而 Internet Explorer 5.5 和 6.0 则是 11pt。奇怪的是,当显示 Microsoft Sans Serif 字体,10.5pt 大小的时候,宋体则是 10.5pt,而实际显示出来的 Microsoft Sans Serif 字体大小则是 10pt。
  最近我发现一个很有趣的现象:我以前很不喜欢用中文版 Windows 中的宋体来显示英文字体,但是一度以来我却在我的中文网页里面用宋体。我想为什么我当初不用英文字体呢?然后我就试了一下,试用在 Word 里面与宋体配合的 Times New Roman 字体。结果发现在 IE 里面的效果果然差:这是因为我在写网页的时候,一般在中文和英文之间加入空格(这是从中文版 Windows 98 中学来的,这样比较好看),然而 IE 在用英文字体显示的时候是这样处理的:如果一个空格是在中文字之后的,由于中文字用宋体显示,那么这个空格也用宋体显示。如果一个空格是在英文字之后,那么就用英文字体显示。结果英文字体的空格明显比宋体中的要小,就使得显示出现的英文字前面的空格很大,后面的空格很小,很不协调。最后我用 Courier New 字体来将就将就。本来嘛,宋体的英文字母就很窄,可读性不好。所以用 Courier New 这种等宽字体调节一下,感觉就好多了。当然最好是有 Times New Roman 字体。那么为什么我不用 Arial、Verdana、Microsoft Sans Serif 等字体呢?是因为这些字体是 sans-serif 系列的,不镶边的,而宋体则是镶边字体,所以应该用 Times New Roman 来配。在 Mozilla 1.6 游览器里面就是很好看的,空格都用英文字体的空格大小。我想为什么 IE 会这样处理呢,从 Windows 程序的角度说,一个 Windows 程序在显示文字的时候要指定两样东西:一个是编码,一个是字体。如果指定字体无法显示指定字符,那么系统会用可以显示这种字符的默认字体代替。比如说:指定用 Times New Roman 来显示,但是遇到中文字符无法显示,那么系统会用宋体来代替。Mozilla 里面大概就是这么做的,利用系统自动的字体代换。但是 IE 里面可能不是这么做的。IE 自己识别字符是什么字符集的,比如说中文字是中文的,它就指定用宋体显示,而不是指定 Times New Roman 再让系统来代换。然后中文字之后的空格就也被用宋体显示了,而英文字后面的空格也就用英文字体显示了,结果就不好看了。

返回 Windows 概览