Erste Quelle HTML aus einer WebView in Cocoa
Frage
Ich arbeite an einem O X-Programm, wo der Benutzer etwas Licht tut WYSIWYG-HTML-Bearbeitung in einem WebView. Die neu in die Programmierung mit Kakao und WebKit, habe ich absolut keine Ahnung, wie aus einem WebView ausgewählten Text zu bekommen - die Absicht nehmen zu sein, was der Benutzer ausgewählt, fügen Sie HTML-Code (wie divs oder Span) um den Text, und ersetzen Sie die ausgewählte Text mit dem modifizierten Code. Wie kann dies erreicht werden?
Ich programmiere gerade dieses Projekt mit MacRuby, aber ich würde auch Hilfe von Objective-C-Programmierern zu schätzen wissen. Vielen Dank!
Lösung
Sie können für die WebView
des -selectedDOMRange
fragen und du wirst ein DOMRange
Objekt zurück. Sie können dieses Objekt verwenden, um herauszufinden, was ausgewählt wird. DOMRange
, wie alle WebKit DOM-Objekte, ist ein Objective-C Darstellung eines Standard W3C DOMRange Objekt finden DOMRange.h
für welche Methoden / Eigenschaften unterstützt wird.
Sie können dann ersetzen Sie die aktuelle Auswahl der -replaceSelectionWithMarkupString:
, -replaceSelectionWithText:
oder -replaceSelectionWithNode:
Methoden WebView
verwenden.
Andere Tipps
Apple empfiehlt die Nutzung dieser Schnipsel hier abrufen der HTML-Inhalt von einem WebKit WebView:
[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerHTML];
Wenn Sie den HTML-Code interpretiert als Klartext möchten, können Sie verwenden:
[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerText];
UIWebView können Sie laufen beliebigen JavaScript:
[webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]