论坛首页 Web前端技术论坛

西方人通常发现不了的一个IE的bug

浏览 41478 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-05-10  
hax 写道

IE中的所有元素其实并不是被凭空绘制出来的,而是统统基于已有的Windows控件之上。除了典型的按钮、下拉菜单等,普通的div其实也是一个textbox控件。

开眼了.
麻烦你告诉我怎么样证明这个.
我记得以前也用spy++之类的东西软件检查过IE的窗口,没有发现是基于已有的Windows控件之上这个说法呀.
刚才我又用SpyLite查看了一下还是只能发现一个Internet Explorer_Server,其他的都查不到句柄呀
0 请登录后投票
   发表时间:2008-05-10  
fins 写道
down click up 这是事件处理的顺序
在down里做一些事情确实危险

例如 alert一个东西 那么click事件 就不能被正确的触发了

补充:
这个说法在上面的例子里是成立的,
不过并不通用,因为有气泡的event模型问题,
click事件会被首先传递出去.
我的意思是说,如果用up事件的话,一定要注意是否仍然要处理click事件,
以及上下文的关系.并不是说这个方法有问题.
0 请登录后投票
   发表时间:2008-05-10  
achun 写道
hax 写道

IE中的所有元素其实并不是被凭空绘制出来的,而是统统基于已有的Windows控件之上。除了典型的按钮、下拉菜单等,普通的div其实也是一个textbox控件。

开眼了.
麻烦你告诉我怎么样证明这个.
我记得以前也用spy++之类的东西软件检查过IE的窗口,没有发现是基于已有的Windows控件之上这个说法呀.
刚才我又用SpyLite查看了一下还是只能发现一个Internet Explorer_Server,其他的都查不到句柄呀



这个还需要验证吗?电脑用多了吧:

  为什么修改WINDOWS主题的时候,所有风格包括IE风格都变了,你以为做主题包这么强啊?不就是修改了底层视窗元素单元设置。
0 请登录后投票
   发表时间:2008-05-10  
raojl 写道


这个还需要验证吗?电脑用多了吧:

  为什么修改WINDOWS主题的时候,所有风格包括IE风格都变了,你以为做主题包这么强啊?不就是修改了底层视窗元素单元设置。

你这解释正好推翻了你的结论呀!
修改WINDOWS主题并不能影响到IE里面页面的显示呀!
0 请登录后投票
   发表时间:2008-05-10  
achun 写道

开眼了.
麻烦你告诉我怎么样证明这个.
我记得以前也用spy++之类的东西软件检查过IE的窗口,没有发现是基于已有的Windows控件之上这个说法呀.
刚才我又用SpyLite查看了一下还是只能发现一个Internet Explorer_Server,其他的都查不到句柄呀


很遗憾,偶老年痴呆忘记那个工具的名字了,可能是delphi的某些调试工具。。。
不过我称之为Windows控件或有不确之处,它并不一定就是Win32的标准控件,而可能是mshtml定义的控件,但是一定是遵循那套机制(MFC?)。

与Gecko是从头重写的不同,IE到现在还遗留了IE4时代(更早的不可考了……)的基本架构,有一些bug或曰feature是这种架构固有的。不过据说IE8会完全重写layout引擎。
0 请登录后投票
   发表时间:2008-05-10  
hax 写道
achun 写道

开眼了.
麻烦你告诉我怎么样证明这个.
我记得以前也用spy++之类的东西软件检查过IE的窗口,没有发现是基于已有的Windows控件之上这个说法呀.
刚才我又用SpyLite查看了一下还是只能发现一个Internet Explorer_Server,其他的都查不到句柄呀


很遗憾,偶老年痴呆忘记那个工具的名字了,可能是delphi的某些调试工具。。。
不过我称之为Windows控件或有不确之处,它并不一定就是Win32的标准控件,而可能是mshtml定义的控件,但是一定是遵循那套机制(MFC?)。

与Gecko是从头重写的不同,IE到现在还遗留了IE4时代(更早的不可考了……)的基本架构,有一些bug或曰feature是这种架构固有的。不过据说IE8会完全重写layout引擎。

知道你说的是什么工具了.
早期的delphi中包含的一个工具.名字我也忘了.(好像画了个人头像的,好像是什么医生的,不确定的说)
可以监视进程,窗体,事件等信息的MON工具.
现在的delphi已经没有这个工具了.
考虑IE的内核和windows系统内核的紧密程度.
这套体制应该是个基础了,也就是你说的不是独立的.
因此可以通过考量windows系统的机制来分析问题.
恩.有道理.
0 请登录后投票
   发表时间:2008-05-10  
achun 写道
hax 写道
achun 写道

开眼了.
麻烦你告诉我怎么样证明这个.
我记得以前也用spy++之类的东西软件检查过IE的窗口,没有发现是基于已有的Windows控件之上这个说法呀.
刚才我又用SpyLite查看了一下还是只能发现一个Internet Explorer_Server,其他的都查不到句柄呀


很遗憾,偶老年痴呆忘记那个工具的名字了,可能是delphi的某些调试工具。。。
不过我称之为Windows控件或有不确之处,它并不一定就是Win32的标准控件,而可能是mshtml定义的控件,但是一定是遵循那套机制(MFC?)。

与Gecko是从头重写的不同,IE到现在还遗留了IE4时代(更早的不可考了……)的基本架构,有一些bug或曰feature是这种架构固有的。不过据说IE8会完全重写layout引擎。

知道你说的是什么工具了.
早期的delphi中包含的一个工具.名字我也忘了.(好像画了个人头像的,好像是什么医生的,不确定的说)
可以监视进程,窗体,事件等信息的MON工具.
现在的delphi已经没有这个工具了.
考虑IE的内核和windows系统内核的紧密程度.
这套体制应该是个基础了,也就是你说的不是独立的.
因此可以通过考量windows系统的机制来分析问题.
恩.有道理.

Win32还有标准控件? 都有什么呀?
难道大家不知道MFC是给VC用的么?
貌似Window Vista以下所有版本 都以win32 API为基础的吧 会随着主题变有什么奇怪

难道有人认为IE是用label套起来布局的?
0 请登录后投票
   发表时间:2008-05-10  
csf177 写道
Win32还有标准控件? 都有什么呀?
难道大家不知道MFC是给VC用的么?
貌似Window Vista以下所有版本 都以win32 API为基础的吧 会随着主题变有什么奇怪

难道有人认为IE是用label套起来布局的?

基本上能写到res资源文件里的都是Win32的标准控件,
res在用c/c++的时候常用,如果你不是c/c++程序员的话,不知道很正常.

LZ说的当然不是什么label套起来,而是说的label的实现有一个更底层的内核在支持,
这个更底层的内核支持着windows的所有GUI上的东东.
0 请登录后投票
   发表时间:2008-05-10  
achun 写道
csf177 写道
Win32还有标准控件? 都有什么呀?
难道大家不知道MFC是给VC用的么?
貌似Window Vista以下所有版本 都以win32 API为基础的吧 会随着主题变有什么奇怪

难道有人认为IE是用label套起来布局的?

基本上能写到res资源文件里的都是Win32的标准控件,
res在用c/c++的时候常用,如果你不是c/c++程序员的话,不知道很正常.

LZ说的当然不是什么label套起来,而是说的label的实现有一个更底层的内核在支持,
这个更底层的内核支持着windows的所有GUI上的东东.


因为我本人不是Window编程人员,没有用过c++和delphi进行windows编程,所以这方面的表述可能不准确。但是我的意思大家可以理解,就是Windows本身的GUI编程所使用的体系,比如它有他自己的控件和焦点机制。这跟HTML的元素上的焦点是不同的。而IE现有的layout引擎显然在将HTML焦点转换为Windows焦点的时候出现了许多隐藏的bug。

BTW,还没有人发现我说的那个“西方人通常发现不了”的bug么?它的症状可以非常一目了然的哦。
0 请登录后投票
   发表时间:2008-05-10  
hax 写道
fins 写道
不知道为什么 西方人发现不了


开动脑筋啊。一样使用IE,我们跟西方人有什么区别呢?

还没有明显发现,不过发现如果点鼠标的中建(波轮),selected生效.
还有就是如果出滚动条的话,focus生效(FF也是这样).这个不算BUG吧!也就是特性吧.
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics