我在CKEditor中修改选定的文本和图像时出现问题 - 这是我用来获取选择的代码,然后将其包装在链接中。顺便说一句,我是通过ckeditor上的对话框来完成的:
/* the base script for ckeditor selection actions, like inserting links/images */
(function(){
var editor=editor||CKEDITOR.instances[parent.$('#WYSIWYGwrapper textarea').attr('id')];
if(CKEDITOR.env.ie){CKEDITOR.dialog.getCurrent().hide();}
var selection=editor.getSelection(),
element=editor.document.createElement('a'),
text="",
ranges=selection.getRanges(),
range={},
isWebkitShouldExtract=false,
clone={},
ShouldExtractWebkit=function(nodes) {
var nodelen=nodes.length,
i=0;
for(;i<nodelen;i+=1) {
if(nodes[i].nodeName==="IMG") return true;
}
return false;
};
this.insertMode=true;
element.setAttribute("href","www.google.com");
element.setAttribute("target","main");
if(CKEDITOR.env.ie){text=editor.document.$.selection.createRange().htmlText;element.setHtml(text);editor.insertElement(element);}
else{
if(ranges.length>0){
range=ranges[0];
clone=range.cloneContents();
if(CKEDITOR.env.webkit){isWebkitShouldExtract=ShouldExtractWebkit(clone.$.childNodes);}
element.append(clone);
if(!CKEDITOR.env.webkit || isWebkitShouldExtract){range.extractContents();}
editor.insertElement(element);
}
}
if(!CKEDITOR.env.ie){CKEDITOR.dialog.getCurrent().hide();}
}());
总的来说,似乎我无法在WYSYWIG中选择html项目,然后在浏览器中一致地将它们包含在链接标记中。有没有人有完成这个的经验?
答案 0 :(得分:0)
为了修复它,我使用了rangy,因为CKEditor的api还有很多不足之处
我在这里发了一篇关于它的博客文章http://allampersandall.blogspot.com/2011/11/ckeditor-selection-range.html