您的位置:首页 > 其它

关于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的源代码写的

可能语言组织的不好,希望可能帮到大家少走弯路,有什么不懂的可以问,我会尽快给您回复的,谢谢大家的支持!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: