FineUI 官方论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

本论坛已关闭(禁止注册、发帖和回复)
请移步 三石和他的朋友们

FineUI首页 WebForms - MVC & Core - JavaScript 常见问题 - QQ群 - 十周年征文活动

FineUI(开源版) 下载源代码 - 下载空项目 - 获取ExtJS - 文档 在线示例 - 版本更新 - 捐赠作者 - 教程

升级到 ASP.NET Core 3.1,快、快、快! 全新ASP.NET Core,比WebForms还简单! 欢迎加入【三石和他的朋友们】(基础版下载)

搜索
楼主: 泗水亭长
打印 上一主题 下一主题

IE7下弹出窗口出现滚动条时Alert出现JS错误

[复制链接]
楼主
发表于 2012-3-30 17:52:31 | 显示全部楼层
这是 泗水亭长 给我的测试例子:

这个问题在IE7下的确存在。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
沙发
发表于 2012-3-30 17:56:42 | 显示全部楼层
这个问题在Firefox,IE8,IE9下都不存在,只在IE7下存在,重新步骤:
1. 打开测试页面,单击按钮弹出窗口。
2. 确保弹出窗口出现滚动条,点击显示Alert对话框的按钮。
3. 弹出Alert对话框,此时还没问题。
4. 点击Alert对话框的标题,就报错了。



打开extjs源代码,定位到如下片段:


调试后发现,在IE7下,进来的node参数可能为null,所以在null.nodeName时自然会出错。


=====================================
其实解决办法很简单,当node不存在时不要往下执行函数了。

这个函数的本意是判断某个节点是否是有效的可拖动DOM节点,node为空时肯定就不是了,所以逻辑上也是对的。

所以,我们可以简单的修改extjs的源代码来解决这个问题:
  1. isValidHandleChild: function(node) {
  2. if(!node){ return false; }
  3. ....
复制代码

=====================================
但是上面的做法不太好,尽量不要修改别人的源代码,否则升级时会遇到问题。
没关系,我们只需在外面覆盖这个函数:
  1. // 修正IE7下,窗口出现滚动条时,点击Window控件标题栏有时node为null的问题
  2. var originalIsValidHandleChild = Ext.dd.DragDrop.prototype.isValidHandleChild;
  3. Ext.dd.DragDrop.prototype.isValidHandleChild = function (node) {
  4.     if (!node || !node.nodeName) {
  5.         return false;
  6.     }
  7.     return originalIsValidHandleChild.apply(this, [node]);
  8. };
复制代码

解决!



=====================
这个修正会出现在 v3.1.1中,如果你在使用以前的版本,可以下载ExtAspNet的源代码,把上面的一段JS代码加在js/x.js的最后,重新编译工程就行了。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
板凳
发表于 2012-3-30 18:06:01 | 显示全部楼层
@泗水亭长,方便把你们项目放点截图到《基于 ExtAspNet 的项目展示区》。。。
地板
发表于 2012-3-31 20:21:57 | 显示全部楼层
这个BUG找的我好辛苦,一行一行的删除代码,最终定位到了QuickTips,还是extjs本身的浏览器兼容性为题。
现在已经搞定,ChangeSet:75361

+修正原生的IE7(非IE8下的IE7模式)中,iframe中的页面出现滚动条时,页面上的所有按钮都不能点击了(泗水亭长)。
        -最终发现是初始化QuickTips时出的问题,必须这样初始化Ext.QuickTips.init(false);,这是Extjs本身的兼容性问题。
        -Ext.QuickTips.init - autoReader:True to render the QuickTips container immediately to preload images.。

5#
发表于 2012-4-1 14:29:50 | 显示全部楼层
泗水亭长 发表于 2012-4-1 12:15
自己顶起来,希望大家关注下。

你确认一下上面的解决方案是否有效,还有你把重复发的一个帖子删了吧。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|FineUI 官方论坛 ( 皖ICP备2021006167号-1 )

GMT+8, 2024-6-2 04:53 , Processed in 0.043159 second(s), 14 queries , Gzip On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表