iPhone загружает Htmlstring в UIWebView и заменяет текст, используя Javascript - PullRequest
2 голосов
/ 04 января 2012

У меня есть один HTML-файл, подобный этому.

<body class="iphone" onLoad="doSomething()">
    <div id="title_wrapper"><h2 id="title">[[[TITOLO]]]</h2></div>
    <h2 id="subtitle">[[[DATA]]]</h2>
    <div id="content">
        [[[TESTO]]]
    </div>

Я загружаю его в свой UIWebView и хочу заменить «[[[TESTO]]]» содержимым одной переменной NSString.Как я могу это сделать?

Ответы [ 3 ]

7 голосов
/ 04 января 2012

Вы можете использовать метод UIWebView -stringByEvaluatingJavaScriptFromString:, чтобы изменить HTML-код после его загрузки:

NSString *title = @"New Title";
[webView stringByEvaluatingJavaScriptFromString:
  [NSString stringWithFormat:@"document.getElementById('title').innerHTML = %@", title]];
6 голосов
/ 04 января 2012

Почему вы должны сделать это в javascript?

Чтобы сделать это в Objective-C, просто перейдите:

NSString *templateHTML = [NSString stringWithContentsOfFile:@"Filename" encoding:NSUTF8Encoding error:NULL];
NSString *finalHTML = [templateHTML stringByReplacingOccurrencesOfString:@"[[TEST0]]" withString:variable];

Это даст вам HTML с вашей переменной вместо[[TEST0]], который затем можно загрузить в свой UIWebView, используя loadHTMLString:baseURL:.

1 голос
/ 04 января 2012

Я делал что-то подобное раньше, но я делал это в цели С.

просто сначала соберите свой HTML-файл

[NSString stringWithFormat:@"<body class="iphone" onLoad="doSomething()"><div id="title_wrapper"><h2 id="title">%@</h2></div><h2 id="subtitle">%@</h2><div id="content">%@</div>", titolo ,data, content];

и затем загрузите его в веб-просмотр следующим образом

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