2013-08-07 43 views
0

为什么以下javascript命令不能在UIWebView html富文本编辑器中使用的RGB十六进制中设置字体颜色?使用execCommand在UIWebView中使用Javascript文本编辑器

颜色的RGB十六进制更改为标准蓝色,黄色,红色等,例如:

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.execCommand('forecolor', false, '#407ec9')"]]; 

生成HTML

<font color="#0000ff"> HELLO WORLD </font> 

回答

0

解决了它。这是我的解决方法答案:

NSString *color = @"#407ec9"; 
NSString *text = [self.webView stringByEvaluatingJavaScriptFromString:@"window.getSelection().toString()"]; 

[webView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.execCommand('insertHTML', false, '%@')", [NSString stringWithFormat:@"<font color=\"%@\">%@</font>", color, text]]]; 
+1

如果可能的话,我会建议使用一些不赞成使用的''标签。 ''会更好。 – Luke

+0

好的建议谢谢。 – chongsj

+0

也许如果你有contenteditable属性为真,那么它会工作 – meteors

0

在Chrome,Safari浏览器,Firefox中的以下工作和Opera,甚至Internet Explorer 9的:

<input type="button" onclick="document.execCommand('forecolor', false, '#407ec9');" value="Change" /> 
<div contenteditable="true">Test</div> 

http://jsfiddle.net/M5j8b/

它也可以在移动Safari浏览器中的iOS 6

,我没有看到任何明显的错误与您的通话stringByEvaluatingJavaScriptFromString。我怀疑有些东西没有正确逃脱。

我会尝试使在页面上简单的JavaScript函数,并调用它来代替:

function foo() { 
    document.execCommand('forecolor', false, '#407ec9') 
} 

如果不工作,我怀疑一个不同的问题。

+0

对不起,我在iOS UIWebView中使用该JS命令。我试图简化我的问题,现在编辑它以在iOS环境中正确地形成问题。这似乎是UIKit的一个问题。 – chongsj

+0

不起作用。我发布了一个解决方法的答案。感谢您的帮助! – chongsj

+0

@chongsj奇。它应该有。你的页面中一定有其他东西。那么,很高兴你想到了一些东西 – Luke