跳过 CKEditor 中的元素
Skipping an element in CKEditor
假设我们有以下文本和插入符号位置:
foo |bar baz
而 HTML 代码是
foo <span>bar</span> baz
并且用户按下了向右箭头键。发生的情况是插入符号现在移到了 bar
的字母 b
和 a
之间的范围内。
我希望 CKEditor 自动跳过某个元素(例如所有跨度)并跳到它后面,所以结果是:
foo bar| baz
这是否可以通过摆弄配置来实现?如果是这样,我需要设置什么?我无法找到文档中提到的这些设置。或者我是否必须更改 CKEditor 源代码才能执行此类操作?
重要的是 CKEditor 不负责插入符号的移动。至少在大多数情况下是这样,因为在某些情况下它会自己处理事情。在所有其他情况下,移动插入符的是您的浏览器,因此您需要更改其行为。这是可行的,它只需要编写一个 keydown
侦听器,它将发现特定情况何时发生并在您选择的位置设置选择。然而,这还不是全部,因为用户还可以通过单击或拖动将插入符放在 <span>
中。所以还有一点(好吧...... "little")还有一点要做。
另一种解决方案是使用不可编辑的岛,在 CKEditor 中称为小部件。我不确定这是否是您想要实现的目标,但也许 placeholders 是您想要的。
如果您想了解更多关于小部件的一般信息,请参阅 – Introduction to Widgets。
假设我们有以下文本和插入符号位置:
foo |bar baz
而 HTML 代码是
foo <span>bar</span> baz
并且用户按下了向右箭头键。发生的情况是插入符号现在移到了 bar
的字母 b
和 a
之间的范围内。
我希望 CKEditor 自动跳过某个元素(例如所有跨度)并跳到它后面,所以结果是:
foo bar| baz
这是否可以通过摆弄配置来实现?如果是这样,我需要设置什么?我无法找到文档中提到的这些设置。或者我是否必须更改 CKEditor 源代码才能执行此类操作?
重要的是 CKEditor 不负责插入符号的移动。至少在大多数情况下是这样,因为在某些情况下它会自己处理事情。在所有其他情况下,移动插入符的是您的浏览器,因此您需要更改其行为。这是可行的,它只需要编写一个 keydown
侦听器,它将发现特定情况何时发生并在您选择的位置设置选择。然而,这还不是全部,因为用户还可以通过单击或拖动将插入符放在 <span>
中。所以还有一点(好吧...... "little")还有一点要做。
另一种解决方案是使用不可编辑的岛,在 CKEditor 中称为小部件。我不确定这是否是您想要实现的目标,但也许 placeholders 是您想要的。
如果您想了解更多关于小部件的一般信息,请参阅 – Introduction to Widgets。