TLDR
在 IE8 中打开它http://jsbin.com/ucahor/1/edit#/ucahor/2/edit
单击空白行并立即按Backspace
。2行被删除。
单击空白行,稍等片刻,然后按Backspace
。1 行被删除。
我能做些什么来解决这个问题吗?
全文
我正在尝试为我的 Web 应用程序制作最好的富文本编辑器。我采用了NicEdit并添加了许多功能。我使用 nicedit 是因为它是我测试的 9 中唯一满足这些要求的编辑器。
- 在 IE6 中工作
- 可以从Word粘贴
- 编号和项目符号
- 纯 Javascript(所以我们可以很容易地修改它)
- 下载的文件数量少
- 可以设置光标位置
- 可以全屏
- 可以处理大文件(1500段粘贴)
我添加到我的 NicEdit 实现中的一件事是为我的用户编写的常见报告插入标题。一个问题是我需要一种在标题之间有空行的方法。我不能使用<br/>
标签,因为它们不能很好地插入列表,而且我不能使用<div>
标签,因为 Internet Explorer 在内容可编辑 div 内的 div 存在问题。
这让我可以使用<p>
标签来指示新行。
但是我不能只使用<p></p>
它,它是用户代理忽略空P
标签的 HTML 标准。
目前我的用户正在使用,<p> </p>
但这会使每一行缩进一个空格,而新行没有空格。
我发现有一个Zero Width Space
字符​
可以让我的P
标签被渲染并且每行没有空格!
我的新<p>​</p>
功能很好,除非用户正在删除一行,否则第一个退格键似乎什么都不做。
所以我绑定到我的 keydown 事件以进行退格。它检查光标之前的字符,如果是我的Zero Width Space
字符,我将其空白并让退格键正常继续。
这有效,除非您单击要删除的行并快速单击退格键。该操作会导致 2 行被删除。
您可以加载您的 IE8 并在此处试用。http://jsbin.com/ucahor/1/edit#/ucahor/2/edit