Popup窗口在XP+SP2下面受到限制

简介:
在微软XP SP2对IE6兼容性的官方文档《 Compatibility in Internet Explorer 6 for Windows XP Service Pack 2 》中,微软口口声声说对窗口对象属性的安全限制中,不会影响Popup窗口。可事实上,Popup窗口并没有逃脱被限制的厄运。这下,使用Popup窗口技术实现的菜单就有都遭殃了。

    Popup窗口是IE提供的一个独特的浏览器扩展功能,关于它的详细介绍和作用,可以参看"使用Popup窗口创建无限级Web页菜单"一文。在当我们的XP系统升级到SP2后,Popup窗口默认被设置了一下限制:

    1、Popup窗口不能超出浏览器的内容区域,就是IE窗口显示网页的有效区域;
    2、Popup窗口中生成的子Popup窗口只能限制在其父Popup窗口之下。

    第一个限制很讨厌,不过还好基本不太影响Popup做为菜单的使用。第二点就比较郁闷了,如果是菜单,出现子菜单的情况太常见了。而如果子菜单只能显示在父菜单之下,虽然在大多数情况下貌似也没啥大问题,可是当菜单在页面的最右边时,第三级子菜单在空间不够用的情况下,向父菜单的左边展开,就麻烦了。这时这个子菜单将被父菜单覆盖住,能不能露脸全看造化了。

    当然这个限制也是可以在IE的安全设置中进行修改,就是把当前站点添加为信任站点,上面两个对Popup的限制就没有了。不过这基本上没有太大价值,任何一个网站或系统都不能如此依赖用户的设置。

    由此一来,这个Popup的可用性已经很低了,除非万不得已不推荐使用。连最新版的Sharepoint中的Popup菜单都换成了DIV模拟的了。当然这也是为了更好的兼容其它浏览器,Popup即时没有这个问题也是IE独家提供的。但是DIV的致命问题是不能跨frame(包括iframe),如果一定要做跨frame的提示窗口或菜单,还是必须顶着麻烦上Popup。


本文转自博客园鸟食轩的博客,原文链接:http://www.cnblogs.com/birdshome/,如需转载请自行联系原博主。

目录
相关文章
|
6月前
Win10和Win11输入法设置(处理繁体)
Win10和Win11输入法设置(处理繁体)
|
C++ Windows
C++ Windows窗口程序:子窗口控件之按钮类button
C++ Windows窗口程序:子窗口控件之按钮类button
938 0
win7,如何设置成XP系统那样,打开的窗口都显示在任务栏
win7,如何设置成XP系统那样,打开的窗口都显示在任务栏
222 0
|
文字识别 C++
WPF4.0用tablet实现手写输入(更新XP SP3下也能手写输入方法)
原文:WPF4.0用tablet实现手写输入(更新XP SP3下也能手写输入方法)     由于项目需求一个手写输入的控件,纠结了2天,终于搞定了。   主要是由于本人的英语不过关,一直和ocr混淆在一起,研究了Tesseract-OCR,我说奇怪了号称老牌OCR新版本还支持中文,怎么效果这么差,必须写个标准楷体才能够识别...||-_-.。
1098 0