document.execCommand("BackColor",false,"red"). 函数是给选中的文本加上背景颜色. 我是用iframe 做的编辑器,使用这个函数的时候,IE 是正常的 ,但是,在 火狐 下面,它加的是整个iframe 的背景颜色,不是选中文本的背景颜色,请问高手 怎么解决这个问题. 期待你的回答,我看别的编辑器中是这样写的,不过我没有看明白,它这里面是把选中的文字用style:background-color:red,这样就能解决问题了下面是其它编辑器里的代码,怎么把这段改码修改一下来适合我上面哪句呢。
KE.plugin['bgcolor'] = {
click : function(id) {
KE.util.selection(id);
this.menu = new KE.menu({
id : id,
cmd : 'bgcolor'
});
this.menu.picker();
},
exec : function(id, value) {
var cmd = new KE.cmd(id);
if (value == '') {
cmd.remove({
'span' : ['.background-color']
});
} else {
cmd.wrap('span', [{'.background-color': value}]);
}
KE.history.add(id, false);
this.menu.hide();
KE.util.focus(id);
}
};

解决方案 »

  1.   

    没有你说的问题啊
    在线 Demo
    http://www.kindsoft.net/demo.php
    http://www.kindsoft.net/ke/examples/demo-01.html
      

  2.   

    我不是说它这个编辑器,我是说我自己写的一个编辑器,我自己写的是document.execCommand("BackColor",false,"red"),它这个编辑器是用我后面写的代码解决的,可是我没有看明白,我想把哪一段拿过来自己用,不知道如何改写才好
      

  3.   

    这么JavaScript代码吗 怎么一个也看不懂啊
      

  4.   

    我看到网上有document.execCommand("BackColor",false,"red"). 
    火狐下换成document.execCommand("hilitecolor",false,"red"). 可是我换了之后还是不行,
      

  5.   

    这个是会有问题,firefox和opera都会出现,变成整个iframe变色方法就是:生成一段html,<font style="background:#FF0000;">aaaa</font>
    然后插回原来的地方。记录当前光标位置,然后将整段HTML插入,这个功能你要尽量实现一下,接下去不止背景色,还有很多地方都会用到。
      

  6.   

    FF下使用hiliteColor命令替代BackColor
    但执行命令前必须先打开UseCSSexecCommand('styleWithCSS', false, true);
    execCommand('hiliteColor', false, 'red');