tinymce编辑器的光标位置插入内容时,光标丢失问题解决办法
来源:互联网 发布:pid控制原理及编程方法 编辑:程序博客网 时间:2024/04/30 23:15
在上个项目中,碰到这样一个问题:在tinymce编辑器中,想在光标位置插入内容,在弹出的dialog(是跨域的)中选择内容后,点击确定,关闭弹出窗口,将选中的内容信息myHTML插入到编辑器中的记录的光标位置, 我的写法是 :
tinyMCE.execCommand("mceInsertContent", false, myHTML);
最后发现火狐FF下是正常的,即在光标地方插入我的内容myHTML,而在IE6/7/8下 ,都会把原来所有的内容都覆盖掉。
困扰好几天,发贴提问(http://topic.csdn.net/u/20100812/22/516220a2-9a6a-4820-9ff4-808f75a4dbd9.html)也没人答上,最后还是自己解决了,具体原因和解决办法如下:
原因:是由于IE下,在弹出的dialog(是跨域的)中选择内容后,原来的光标位置丢失了,所以导致在插入的时候,找不到原来的光标位置,所以出现以上问题。
解决思路:在弹出窗口前,记录IE的编辑位置,到插入的时候,复位光标位置然后再插入。
解决方法:
1、 //弹出窗口前,记录IE的编辑光标
var ieSelectionBookmark;
if (isIE) {
ieSelectionBookmark = tinyMCE.get('myEditor').selection.getBookmark
}
// 在弹出的dialog,点击确定往编辑器插入内容前,复位IE的编辑光标
if (isIE) {
tinyMCE.get('myEditor').selection.moveToBookmark(ieSelectionBookmark);
}
// 往编辑器插入内容
tinyMCE.execCommand('mceInsertContent', false, output );
这个种写法在IE6下是OK的,但是到了IE7、IE8下就失效了,原因是tinyMCE的该API方法不支持IE7、IE8。
2、 //弹出窗口前,记录IE的编辑光标
var ieSelectionBookmark;
if (isIE) {
tinyMCE.activeEditor.focus();
ieSelectionBookmark = tinyMCE.activeEditor.selection.getBookmark();
}
// 在弹出的dialog,点击确定往编辑器插入内容前,复位IE的编辑光标
if (isIE) {
tinyMCE.activeEditor.selection.moveToBookmark(ieSelectionBookmark);
}
// 往编辑器插入内容
tinyMCE.execCommand('mceInsertContent', false, output );
这种写法在IE6、7、8下都好用。
参考资料:http://tinymce.moxiecode.com/punbb/viewtopic.php?id=19151
- tinymce编辑器的光标位置插入内容时,光标丢失问题解决办法
- 光标位置插入内容
- 在光标位置插入内容
- JS获取textarea的光标位置并插入内容
- JQuery在光标位置插入内容的实现代码
- 在光标位置插入内容的jquery实现方式
- JQuery在光标位置插入内容
- JS实现在光标位置插入内容
- JQuery在光标位置插入内容
- 在ueditor编辑器的光标停留处插入内容
- js 将光标移动到textarea的最后和光标位置插入内容
- iframe编辑器光标位置插入内容方法,兼容IE和Firefox
- 光标位置插入元素
- 光标处插入内容
- js实现textarea中光标位置插入你想要插入的内容
- jbuilderx光标错位问题解决办法
- 按光标位置在TEXTAREA中插入内容
- c# word 在当前光标位置插入内容
- POJ 2485-Highways 最小生成树Prim算法
- Swing与多线程-小结
- C#自定义项目模板(即VC自定义向导)的两种方法
- asp.net表单提交方法GET/POST
- linux压缩命令小结
- tinymce编辑器的光标位置插入内容时,光标丢失问题解决办法
- 如何避免打开键盘或横竖屏切换,active重启,处理界面的延迟动画
- Vector
- VC调试手段
- android中TextView的文字实现动态效果,走马灯效果,闪烁效果
- CString
- Java classpath 及 path 设置
- vi使用小结
- 在GAE里配置STRUTS2