所以我使用JSColor picker结合document.execCommand方法更改所选文本的前景,您可以按照以下方式发送命令:
<input maxlength="5" class="color {required:false}" onchange="fmtEdit('Icontent','ForeColor',this.color)">
其中fmtEdit函数如下所示:
function fmtEdit(I,command, optn, evnt){
if((command=='forecolor') || (command=='hilitecolor')){
this.getPallete(command, optn, evnt);
}else{
if($(I).contentWindow.document.queryCommandEnabled(command)){
$(I).contentWindow.document.execCommand(command, false, optn);
return true;
}else return false;
}
$(I).contentWindow.focus();
}
如果我从具有onClick事件的按钮或图像发送命令,则代码可以正常工作,例如:
<img alt="Bold" title="Bold" class="butClass" src="bold.png" onClick="fmtEdit('Icontent','bold','')">
但是,一旦我点击颜色选择器字段以选择颜色,所选文本就会失去焦点。
当我点击颜色选择器时,有没有办法在所选文本上保持选择?
非常感谢! gabster。