2010-06-15 2 views
4

Я пытаюсь получить исходный код HTML UIWebView без повторной загрузки его снова (также как и другая загрузка, например [NSData dataWithContentsOfURL:(NSURL*)URL] или запуск NSURLRequest. Просмотр заголовка и документации UIWebView, похоже, нет способ доступа к текущей загрузке NSData источника. Могу ли я что-то отсутствует?UIWebView получить HTML-источник

+0

У меня есть тот же вопрос, так как в некоторых случаях мой веб-сайт выглядит пустым, и я хотел бы посмотреть, есть ли там html. Я думаю, что [webview stringByEvaluatingJavaScriptFromString: script] может быть началом, но я не знаю, какой javascript вернет весь документ. – TahoeWolverine

+0

Как сказано ниже, проще сделать инверсию (получить данные, а затем загрузить их в веб-представление). Я написал класс-оболочку для загрузки данных (упрощает и вы также получаете тип MIME), если кто-то хочет, чтобы это просто комментарий, и я отправлю его как ответ, если он не вписывается в комментарий. Однако я действительно удивляюсь, как вы можете работать с кнопками «назад/вперед». Может кто-нибудь мне сказать? –

+0

@Alexandre Cassagne, не могли бы вы разместить свой класс обертки или опубликовать его по адресу http://snipplr.com/? Это то, что мне нужно, поскольку я не могу получить источник/данные html другим способом, который я планировал. Спасибо – 0SX

ответ

1

обратный должен делать то, что вы хотите. то есть, загрузить URL в объект NSData, а затем загрузить UIWebView от этого объекта с помощью – loadData:MIMEType:textEncodingName:baseURL:

24

UIWebView может выполнять код javascript, поэтому это может работать.

NSString *html = [webView stringByEvaluatingJavaScriptFromString:@"document.documentElement.outerHTML"]; 
+0

Спасибо! Это также относится к случаю, когда HTML отображается из javascript. – mkko