Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

修复IE核心下 使用纯文本模式的时候 论坛编辑器的快捷绑定失效问题

[复制链接]
ihipop 发表于 2012-10-6 22:53:54 | 显示全部楼层 |阅读模式
本帖最后由 ihipop 于 2012-10-6 23:04 编辑

IE核心(我使用IE9能在dz官网重现此问题)使用纯文本模式的时候 编辑器的快捷绑定会失效 (最明显的表现就是在帖子的编辑器内“Ctrl+回车”快捷键不能提交帖子)

非纯文本模式下 下断点 setEditorEvents()可以按照图示的断点处往下正常执行,

因为此时editdoc是个iframe,所以editdoc.body不是空

但是在纯文本模式下editdoc是个textarea 所以editdoc.body必定不存在,

下断点看会产生如下异常


写了个补丁对付了一下 在异常的时候再次进行一次异常处理就可以了 算是最简单最懒的方案

DZ的人要是觉得不屑呢可以自己再写个判断完善下,要是看得起呢直接拿起去合并好了
  1. Index: editor.js
  2. ===================================================================
  3. --- editor.js        (版本 833)
  4. +++ editor.js        (版本 834)
  5. @@ -588,7 +588,14 @@
  6.                          editdoc.body.attachEvent('onmouseup', mouseUp);
  7.                          editdoc.body.attachEvent('onkeyup', keyUp);
  8.                          editdoc.body.attachEvent('onkeydown', keyDown);
  9. -                } catch(e) {}
  10. +                } catch(e) {
  11. +                        /*IE核心 源代码模式下 编辑器快捷键绑定的DirtyFix ihipop @ 22:27 2012-10-06*/
  12. +                        try {
  13. +                                editdoc.attachEvent('onmouseup', mouseUp);
  14. +                                editdoc.attachEvent('onkeyup', keyUp);
  15. +                                editdoc.attachEvent('onkeydown', keyDown);
  16. +                        } catch(r) {}
  17. +                }
  18.          }
  19. }

复制代码

本帖子中包含更多资源

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

x

评分

1

查看全部评分

明镜 发表于 2012-10-7 11:28:00 | 显示全部楼层
除了官方开发人员估计没几个人看的懂
回复

使用道具 举报

无效楼层,该帖已经被删除
枯心树 发表于 2012-10-7 17:31:43 | 显示全部楼层
我可以证明楼上说得对
回复

使用道具 举报

军刀闪亮 发表于 2012-10-7 20:20:43 | 显示全部楼层
本帖最后由 军刀闪亮 于 2012-10-7 20:39 编辑

你这样写的话,估计很多人看不懂。

补充一下吧:

static\js\editor.js
查找:
  1. function setEditorEvents() {
  2.         if(BROWSER.firefox || BROWSER.opera) {
  3.                 editdoc.addEventListener('mouseup', function(e) {mouseUp(e)}, true);
  4.                 editdoc.addEventListener('keyup', function(e) {keyUp(e)}, true);
  5.                 editwin.addEventListener('keydown', function(e) {keyDown(e)}, true);
  6.         } else if(editdoc.attachEvent) {
  7.                 try{
  8.                         editdoc.body.attachEvent('onmouseup', mouseUp);
  9.                         editdoc.body.attachEvent('onkeyup', keyUp);
  10.                         editdoc.body.attachEvent('onkeydown', keyDown);
  11.                 } catch(e) {}
  12.         }
  13. }
复制代码
改成:
  1. function setEditorEvents() {
  2.         if(BROWSER.firefox || BROWSER.opera) {
  3.                 editdoc.addEventListener('mouseup', function(e) {mouseUp(e)}, true);
  4.                 editdoc.addEventListener('keyup', function(e) {keyUp(e)}, true);
  5.                 editwin.addEventListener('keydown', function(e) {keyDown(e)}, true);
  6.         } else if(editdoc.attachEvent) {
  7.                 try{
  8.                         editdoc.body.attachEvent('onmouseup', mouseUp);
  9.                         editdoc.body.attachEvent('onkeyup', keyUp);
  10.                         editdoc.body.attachEvent('onkeydown', keyDown);
  11.                 } catch(e) {
  12.                        /*IE核心 源代码模式下 编辑器快捷键绑定的DirtyFix ihipop @ 22:27 2012-10-06*/
  13.                         try {
  14.                                 editdoc.attachEvent('onmouseup', mouseUp);
  15.                                 editdoc.attachEvent('onkeyup', keyUp);
  16.                                 editdoc.attachEvent('onkeydown', keyDown);
  17.                         } catch(r) {}
  18.                 }
  19.          }
  20. }
复制代码
回复

使用道具 举报

1314学习网 发表于 2012-10-7 22:44:31 | 显示全部楼层
前排支持。。。
回复

使用道具 举报

evenzhou 发表于 2012-10-9 17:17:47 | 显示全部楼层
谢谢反馈,已经反馈研发人员确认
回复

使用道具 举报

 楼主| ihipop 发表于 2012-11-1 15:12:51 | 显示全部楼层
evenzhou 发表于 2012-10-9 17:17
谢谢反馈,已经反馈研发人员确认

怎么康盛今天的补丁还是没修这个问题么。。。
都给了原因了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2025-3-1 11:28 , Processed in 0.033217 second(s), 8 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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