Добавление HTML в UIWebView - PullRequest
       0

Добавление HTML в UIWebView

4 голосов
/ 06 декабря 2011

Я пытаюсь добавить HTML к UIWebView. Он не работает и вместо этого перезаписывает существующий HTML, так как oldHTML ниже всегда пуст. HTML-строка начинается с

<html><font color="0x0000FF">Blue text</font></html>

Код:

NSString *oldHTML = [myWebView stringByEvaluatingJavaScriptFromString:@"document.documentElement.innerHTML"];

NSString *html = [NSString stringWithFormat:@"%@%@%@%@", @"<html>", oldHTML, htmlToAdd, @"</html>"];

[myWebView loadHTMLString:html baseURL:nil];

Итак, мои вопросы:

  1. Возможно ли получить html от UIWebView?

  2. Если так, то почему первая строка терпит неудачу / каков правильный метод?

  3. Есть ли лучший способ добавить HTML к UIWebView?

Спасибо за любую помощь.

1 Ответ

2 голосов
/ 24 августа 2012

Я подозреваю, что в тот момент, когда вы пытаетесь получить старый html, ваша страница еще не загрузилась, поэтому она возвращает пустую строку.

Попробуйте создать и назначить UIWebViewDelegate для вашего представления, которое реализует webViewDidFinishLoad:, и поместить вышеупомянутый код в эту функцию - oldHTML должен быть непустым в этой точке.

Что касается лучшего способа, вы можете добавить контент через javascript примерно так:

NSString *injectSrc = @"var i = document.createElement('div'); i.innerHTML = '%@';document.documentElement.appendChild(i);";
NSString *runToInject = [NSString stringWithFormat:injectSrc, @"Hello World"];
[myWebView stringByEvaluatingJavascriptFromString:runToInject];

Я бы порекомендовал немного убрать эту проблему, поскольку она не совсем безопасна, но она должна дать представление об использовании javascript для добавления новых элементов на страницу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...