7

我正在开发一个 OS X 程序,用户在该程序中在 WebView 中进行一些轻量级的 WYSIWYG HTML 编辑。作为使用 Cocoa 和 WebKit 编程的新手,我完全不知道如何从 WebView 中获取选定的文本 - 目的是获取用户选择的内容,在文本周围添加 HTML 代码(如 div 或 span),然后替换选定的带有修改后代码的文本。如何实现?

我目前正在用 MacRuby 编写这个项目,但我也很感谢 Objective-C 程序员的帮助。谢谢!

4

3 回答 3

7

Apple 建议在此处使用此代码段来检索 WebKit WebView 的 HTML 内容:

[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerHTML];

如果您希望将 HTML 解释为纯文本,可以使用:

[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerText];
于 2012-09-22T01:35:18.057 回答
5

UIWebView 允许您运行任意 JavaScript:

[webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]
于 2010-01-12T03:16:24.440 回答
3

你可以要求WebView's -selectedDOMRange,你会得到一个DOMRange对象回来。您可以使用此对象找出选择的内容。DOMRange与所有 WebKit DOM 对象一样,是标准 W3C DOMRange 对象的 Objective-C 表示,查看DOMRange.h它支持的方法/属性。

-replaceSelectionWithMarkupString:然后,您可以使用、-replaceSelectionWithText:-replaceSelectionWithNode:的方法替换当前选择WebView

于 2010-01-12T04:18:27.397 回答