Получение исходного HTML из WebView в Какао - PullRequest
7 голосов
/ 12 января 2010

Я работаю над программой OS X, в которой пользователь выполняет небольшое WYSIWYG-редактирование HTML в WebView. Будучи новичком в программировании с помощью Cocoa и WebKit, я совершенно не представляю, как получить выделенный текст из WebView - намерение взять то, что выбрал пользователь, добавить HTML-код (например, div или span) вокруг текста и заменить выбранный текст текст с измененным кодом. Как это можно сделать?

В настоящее время я программирую этот проект на MacRuby, но я также был бы признателен за помощь программистов из Objective-C. Спасибо!

Ответы [ 3 ]

6 голосов
/ 22 сентября 2012

Apple рекомендует использовать этот фрагмент здесь для получения HTML-содержимого WebKit WebView:

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

Если вы хотите, чтобы HTML интерпретировался как обычный текст, вы можете использовать:

[(DOMHTMLElement *)[[[webView mainFrame] DOMDocument] documentElement] outerText];
5 голосов
/ 12 января 2010

UIWebView позволяет запускать произвольный JavaScript:

[webview stringByEvaluatingJavaScriptFromString:@"document.getElementsByTagName('html')[0].innerHTML"]
3 голосов
/ 12 января 2010

Вы можете запросить WebView '-selectedDOMRange, и вы получите DOMRange объект обратно.Вы можете использовать этот объект, чтобы узнать, что выбрано.DOMRange, как и все объекты DOM WebKit, представляет собой представление Objective C стандартного объекта W3C DOMRange, см. DOMRange.h о том, какие методы / свойства он поддерживает.

Затем можно заменить текущий выбор, используя-replaceSelectionWithMarkupString:, -replaceSelectionWithText: или -replaceSelectionWithNode: методы WebView.

...