主题: 用layer jquery.dialog等弹出层插件时,编辑框无法编辑
作者: magic, 发布日期: 2012-12-09 17:36:01, 浏览数: 3630
操作系统: win7

浏览器版本: chrome

KindEditor版本:

BUG再现步骤:
1. 放入任何弹出层插件中均都无法编辑
2.
3.

期望结果: 下个版本修复

作者: 小浪子, 发布日期: 2012-12-09 18:13:27
回复
作者: 关门放狗, 发布日期: 2013-03-06 17:48:04


这个问题的确是存在的,如果editor是放在一个jquery ui modal的弹出框内,这个问题就存在,楼上给出的sample没有设置modal,所以没有这个问题,关键是这里的代码:


https://github.com/jquery/jquery-ui/blob/51eb28e76e372fe0af12724edff0b5780b5e5ed0/ui/jquery.ui.dialog.js#L696


jquery ui dialog在modal的情况下,会检查需要获取focus的控件,如果是在一个带有类ui-dialog的容器内,才会获得焦点,而kindeditor是把产生的对话框放在body内,因此所有获取focus的操作都会被截取并且放弃。


解决方法比较简单,如果考虑到和Jquery ui modal dialog的兼容性,在产生的对话框的类中简单加入一个ui-dialog类就可以解决问题。

回复
发表新帖 发表回复