2012-03-24 49 views
0

我尝试使用内容可编辑的UIWebView制作富文本编辑器,因为UITextView没有得到任何充实。我想知道如何以编程方式替换选择内容或插入HTML代码(例如创建指向选定文本的链接或实现搜索/替换功能)。我试过:在UIWebView中插入HTML

[self.webTexteView stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.ExecCommand('insertHTML', false, '%@')", myString]]; 

但它不工作......你知道是否有解决方案吗?

感谢,

丹尼斯

回答

6

这是迟到了,但只是柜面其他人是看这个你原来的解决方案工作,你只是偶然有

document.ExecCommand 

应该

document.execCommand 

香港专业教育学院与测试它小写字母e和它的作用。

1

可以加载HTML到使用loadHTMLString:消息的网页视图。我希望这不是你想要的。

加载一些html后,您有两个选项可用于在您的webview和您的objective-c代码之间进行通信。 1从objective-c开始,2从javascript开始。

  1. 您可以执行执照javascript,使用您的uiwebview上的stringByEvaluatingJavaScriptFromString:消息。这是非常灵活的,可用于注入代码和调用现有代码。例如。你可以使用[webView stringByEvaluatingJavascriptFromString:@"document.getElementById(\"editor\").innerHTML"]来从id编辑器的div中获取内容。

  2. 通过实施UIWebViewDelegate,您可以通过webView:shouldStartLoadWithRequest:navigationType:通知每次在web视图中打开请求的网址。这使您有机会从url中提取信息,并通过返回NO取消任何进一步的加载。例如。在你的javascript中,当光标经过一些粗体文本时你可以做document.location = "bold";。这会让你有机会更新你的用户界面来反映这一点。

+0

这是我使用的第一个选项,'stringByEvaluatingJavaScriptFromString:',它可以完美地使选择粗体或斜体。我会很高兴不要被迫使用loadHTMLString ...因为我会失去选择,并会被迫在不知道范围内进行查找/替换...... – Denis 2012-03-24 22:20:10

+0

我不能投票,因为我是一个新手网站...仍然没有找到解决这个问题的方法... NSText是OSX的一个很好的解决方案,可能是为了降低Macintosh上MS Word的统治地位。在iOS上,没有微软,苹果没有努力......这有助于该公司出售他们的“页面”应用程序,这绝对不是大多数渴望文本的人的解决方案。 – Denis 2012-03-25 21:31:00