当我在ie上键入内容时,按下文本编辑器顶部工具栏上的“粗体”,光标将转到整个文本编辑器的开头。微小的mce中有这个bug吗?
另一方面,如果我选择我输入的文字,并按下控制+ b,没问题;两者都很好用firefox,ie6
答案 0 :(得分:2)
您是否尝试在IE8中关闭“View-> Caret Browsing”? (由F7切换)
答案 1 :(得分:2)
我遇到了类似的问题,我想要插入的图像总是位于编辑器的顶部。我通过在编辑器的init中设置'onchange_callback'字段来解决它:
tinyMCE.init({..., onchange_callback: 'updateSelectionBookmark', ...});
当屏幕上的任何内容发生变化时,这将调用我的'updateSelectionBookmark'功能,包括编辑器模糊(阅读更多:http://tinymce.moxiecode.com/wiki.php/Configuration:onchange_callback)。我的updateSelectionBookmark看起来像:
function updateSelectionBookmark (ed) {
ed.updatedSelectionBookmark = ed.selection.getBookmark(1);
}
这将向编辑器对象添加一个自定义属性,该对象将始终包含最新的书签。
然后,每当我需要添加内容时,我都会使用存储的书签:
ed.selection.moveToBookmark(ed.updatedSelectionBookmark);
我想插入HTML,所以我在调用实例命令(在我的情况下,mceInsertRawHTML)之前放了这个。
我希望这可以帮助某人,即使我的答案是迟了几个月。
编辑(几个月后):所以我最初在使用TinyMCE 3.2.2.3时找到了这个解决方案,但我们最近更新到3.4.4以便与IE9兼容。看起来上面的解决方案不像我想的那样好用。我已经找到了(据我所知)完美的解决方案。它与上面的类似,除了触发回调的时间和地点。您应该使用编辑器的onEvent事件:
,而不是在设置中使用onchange_callbacktinyMCE.init({
...,
setup: function (ed) {
ed.onEvent.add(function (ed, e) {
ed.updatedSelectionBookmark = ed.selection.getBookmark(1);
});
},
...
});
这取代了对updateSelectionBookmark函数或onchange_callback设置的需要。 onEvent比onChange工作得更好的原因是因为它在任何可能的事件之后被调用,包括鼠标或按键,所以即使移动但是内容没有改变,光标的位置也能保证保存。
使用上述事件回调设置编辑器后,只需使用上述moveToBookmark即可恢复选择。我在IE9,Chrome,FF6上测试了它,它在文本/表格中插入图像/文本时有效。
答案 2 :(得分:1)
我不会说这是IE8中的一个错误。
光标不会被魔法移动,有人(tinymce)把他放在某个地方
因此,如果光标没有出现在预期的位置,那么它必须是一个不正常的行为。
但我无法提供“bugfix”,因为我的IE8(Win7)不会出现这种情况 你的环境是什么?