CKEditor 在 IE 和 FF 中省略了空格
CKEditor is omitting spaces in IE and FF
我已经在 jQueryUI 对话框文本区域配置了 CKEditor
在 Firefox 和 IE 中:
案例 1:当我输入 "sometext+space" 时,它 returns 只有 "sometext" 。 space 省略。
案例2:"sometext+space+space"它
returns 仅 "sometext+space" 。这里不止一个 space 被转换为
单身的 。同样明智的是,如果我输入 3 spaces , 4 spaces 。只有一个 space 是
返回 .
在 Google Chrome 中工作正常。
这是浏览器控制的行为,与CKEditor无关。
事实是:HTML 中表示的块末尾的 space 怎么可能?当我们不使用预格式化块时只有一种方法:
<p>Hello </p>
因此,当您在块末尾按 space 时,您希望在下面创建此 HTML。这就是 Chrome 和 Safari 所做的。
但是,接下来您开始输入另一个词。如果浏览器只插入这些下一个字符,您最终会得到:
<p>Hello World!</p>
但是等一下...您想要在这些词之间有一个正常的、易碎的 space,对吗?因此,当您继续输入时,Chrome 和 Safari 会将这些
替换为正常的 space... 除非它们丢失上下文。然后你可能会得到很多
,这是一个问题。
因此,IE 和 FF 的处理方式不同。当你按下 space 时,他们会欺骗并插入一个正常的 space (或者甚至什么都没有——我没有检查)并渲染它。这是一种作弊,因为如果您在 contentEditable
之外呈现此内容,则此正常 space 将不可见。这就是您遇到的情况,恐怕没有简单的解决方案。你只需要忍受它。
虽然有一个技巧,您可以尝试,但实施起来相当困难。首先,按照 How to preserve white spaces in content editable div. Then, change CKEditor's parser 中的说明设置您的内容的样式,这样它就不会在块边界处掉落白色 space。第二步最难,因为需要修改CKEditor的代码
我已经在 jQueryUI 对话框文本区域配置了 CKEditor
在 Firefox 和 IE 中:
案例 1:当我输入 "sometext+space" 时,它 returns 只有 "sometext" 。 space 省略。
案例2:"sometext+space+space"它 returns 仅 "sometext+space" 。这里不止一个 space 被转换为 单身的 。同样明智的是,如果我输入 3 spaces , 4 spaces 。只有一个 space 是 返回 .
在 Google Chrome 中工作正常。
这是浏览器控制的行为,与CKEditor无关。
事实是:HTML 中表示的块末尾的 space 怎么可能?当我们不使用预格式化块时只有一种方法:
<p>Hello </p>
因此,当您在块末尾按 space 时,您希望在下面创建此 HTML。这就是 Chrome 和 Safari 所做的。
但是,接下来您开始输入另一个词。如果浏览器只插入这些下一个字符,您最终会得到:
<p>Hello World!</p>
但是等一下...您想要在这些词之间有一个正常的、易碎的 space,对吗?因此,当您继续输入时,Chrome 和 Safari 会将这些
替换为正常的 space... 除非它们丢失上下文。然后你可能会得到很多
,这是一个问题。
因此,IE 和 FF 的处理方式不同。当你按下 space 时,他们会欺骗并插入一个正常的 space (或者甚至什么都没有——我没有检查)并渲染它。这是一种作弊,因为如果您在 contentEditable
之外呈现此内容,则此正常 space 将不可见。这就是您遇到的情况,恐怕没有简单的解决方案。你只需要忍受它。
虽然有一个技巧,您可以尝试,但实施起来相当困难。首先,按照 How to preserve white spaces in content editable div. Then, change CKEditor's parser 中的说明设置您的内容的样式,这样它就不会在块边界处掉落白色 space。第二步最难,因为需要修改CKEditor的代码