关于FCKEditor编辑的区域选中问题
2008-06-04 12:41
302 查看
最近在做一个整合FCKEditor编辑器的项目,其中有一个功能就是查找编辑器中的特定的字符串,并选中
查了好多资料,最后找到了同时可以在IE下和FF下的解决方案
现在贴上来于大家分享,希望以后大家可以少走弯路
function SelectLabel(label){
var oEditor = FCKeditorAPI.GetInstance('fckcontent');
var EditHtml = oEditor.EditorDocument;
var inptxt = label;
if(oEditor.GetXHTML(true).indexOf(inptxt) != -1){
if (navigator.appVersion.indexOf("MSIE") != -1){
var rng = oEditor.EditorDocument.body.createTextRange();
rng.findText(inptxt,1,0);
rng.scrollIntoView();
rng.select();
rng.collapse(false);
}else{
var sel = oEditor.EditorWindow.getSelection();
var rng = oEditor.EditorDocument.createRange();
var M = oEditor.EditorDocument.createTextNode(inptxt);
rng.setStart(M, 0);
rng.setEnd(M, M.length);
sel.removeAllRanges();
sel.addRange(rng);
}
}else{
alert("该标签不存在或者已经被删除");
}
}
这里FCKEditor的实例ID为'fckcontent',利用FCK自带的一个API函数找到他,并通过findText这个方法来找到想要找的字符串
IE下的相对简单,FF下JS对TextRange的操作截然不同,搞的我那个郁闷啊
这里的rng.setStart(M, 0);是FCK自己封装过的一个函数,设定一个区域块的起点,都是参考FCK的源代码写的
可能语言组织的不好,希望可能帮到大家少走弯路,有什么不懂的可以问,我会尽快给您回复的,谢谢大家的支持!
查了好多资料,最后找到了同时可以在IE下和FF下的解决方案
现在贴上来于大家分享,希望以后大家可以少走弯路
function SelectLabel(label){
var oEditor = FCKeditorAPI.GetInstance('fckcontent');
var EditHtml = oEditor.EditorDocument;
var inptxt = label;
if(oEditor.GetXHTML(true).indexOf(inptxt) != -1){
if (navigator.appVersion.indexOf("MSIE") != -1){
var rng = oEditor.EditorDocument.body.createTextRange();
rng.findText(inptxt,1,0);
rng.scrollIntoView();
rng.select();
rng.collapse(false);
}else{
var sel = oEditor.EditorWindow.getSelection();
var rng = oEditor.EditorDocument.createRange();
var M = oEditor.EditorDocument.createTextNode(inptxt);
rng.setStart(M, 0);
rng.setEnd(M, M.length);
sel.removeAllRanges();
sel.addRange(rng);
}
}else{
alert("该标签不存在或者已经被删除");
}
}
这里FCKEditor的实例ID为'fckcontent',利用FCK自带的一个API函数找到他,并通过findText这个方法来找到想要找的字符串
IE下的相对简单,FF下JS对TextRange的操作截然不同,搞的我那个郁闷啊
这里的rng.setStart(M, 0);是FCK自己封装过的一个函数,设定一个区域块的起点,都是参考FCK的源代码写的
可能语言组织的不好,希望可能帮到大家少走弯路,有什么不懂的可以问,我会尽快给您回复的,谢谢大家的支持!
相关文章推荐
- 关于LWUIT的table让选中的某一列的某一行点击可以编辑问题
- 关于富文本编辑框(FckEditor)在Asp.net mvc中不能传到controller中的问题
- 关于fckeditor设置不可编辑的问题解决方案
- 关于Select option默认选中及查询后选项值保留的问题
- 关于AlertDialog弹出后,触摸其他区域Dialog消失的问题
- 关于BCB 的Treeview 选中节点高亮有关问题
- 用隐藏域解决关于checkbox 不选中传值问题
- fckeditor设置不可编辑的问题解决方案
- 关于checkbox 不选中传值问题
- 关于 extjs treepanel 复选框 选中 父节点 的问题
- 关于ospf区域认证以及虚链路之间的配置问题
- 关于easyUI的datagrid的编辑功能时的问题
- 关于点击popupwindow以外区域 popupwindow自动消失问题
- extjs关于treePanel+chekBox全部选中以及清空选中问题探讨
- 关于vs2015MFC中不能编辑ICON图像问题
- 关于extjs treepanel复选框选中父节点与子节点的问题
- 关于OnPaint函数覆盖编辑框的问题
- 关于 blog 编辑时的行间距的问题
- 关于用js和attr("selected",true);给select设置选中的值失效问题
- MFC中关于子对话框中编辑框不能编辑的问题