2011-11-30 39 views
1

contentEditable仍然有许多浏览器不兼容的问题,但我想我会给它一个镜头,并且在我正在开发的Web应用程序中使用它。在使用它时,我发现了一堆可以通过execCommand调用的选项。 CONTENTEDITABLE为Firefox允许您拨打有没有办法在webKit的contentEditable div中增加字体大小?

document.execCommand("increasefontsize",bool,value); 

document.execCommand("decreasefontsize",bool,value); 

由一个点来改变字体大小。大多数其他主流浏览器,特别是WebKit不支持这一点,相反你必须设置一个特定的字体大小。有没有办法绕过这个/ hack在WebKit中增加字体大小的工作?或者有什么方法可以选择,获得当前文本的大小?

任何帮助,将不胜感激。

+0

好奇 - 这些命令的输出html是什么?它只是改变内联风格? – MorganTiley

+0

也可以使用rangy如果你还没有:) http://rangy.googlecode.com/ – MorganTiley

+0

@MorganTiley这是一个非标准的命令,将选择包装在''或''中(或者移除相反的标签作为适当的)。 – Neil

回答

2

jwysiwyg似乎使用下面的代码:

if ($.browser.mozilla || $.browser.opera) { 
    this.editorDoc.execCommand('increaseFontSize', false, null); 
} else if ($.browser.safari) { 
    var newNode = this.editorDoc.createElement('big'); 
    this.getInternalRange().surroundContents(newNode); 
} else { 
    console.error("Internet Explorer?"); 
} 

jHtmlArea似乎使用下面的代码:

if ($.browser.msie) { 
    this.ec("fontSize", false, this.qc("fontSize") + 1) 
} else if ($.browser.safari) { 
    this.getRange().surroundContents($(this.iframe[0].contentWindow.document.createElement("span")).css("font-size", "larger")[0]) 
} else { 
    this.ec("increaseFontSize", false, "big") 
} 

对不起,但我找不到任何上述的最终环节。

相关问题