从Cocoa中的WebView获取源HTML

Jim*_*m C 7 cocoa webkit webview macruby

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

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

Cod*_*aFi 7

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

[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerHTML];
Run Code Online (Sandbox Code Playgroud)

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

[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerText];
Run Code Online (Sandbox Code Playgroud)


Mar*_*tos 5

UIWebView允许您运行任意JavaScript:

[webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]
Run Code Online (Sandbox Code Playgroud)

  • WebView也是如此.http://developer.apple.com/mac/library/documentation/Cocoa/Reference/WebKit/Classes/WebView_Class/ (3认同)

Rob*_*ger 3

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

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