2011-12-06 2 views
4

UIWebView에 일부 HTML을 추가하려고합니다. 이 코드는 작동하지 않고 기존 HTML을 덮어 씁니다. oldHTML은 항상 비어 있기 때문에 기존 HTML을 덮어 씁니다. 는 HTML 문자열UIWebView에 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]; 

그래서 내 질문은 : 그것은 UIWebView에서 HTML을 얻을도 가능

  1. 인가? 그렇다면

  2. , 왜 첫 번째 줄에 실패 않습니다/올바른 방법은 무엇인가?

  3. UIWebView에 HTML을 추가하는 더 좋은 방법이 있습니까?

도움 주셔서 감사합니다.

답변

2

이전 html을 얻으려고하는 시점에서 페이지가 아직로드되지 않았기 때문에 빈 문자열이 반환됩니다.

webViewDidFinishLoad:을 구현하는보기에 UIWebViewDelegate을 만들고 할당하고 해당 기능에 위의 코드를 올리십시오. oldHTML은 그 시점에서 비어 있어야합니다. 그렇지 완전히 보안의로,

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

내가 조금이를 청소하는 것이 좋습니다 싶지만, 그것은을 얻어야한다 :

더 나은 방법에 관해서는, 당신이 뭔가에 자바 스크립트를 통해 컨텐츠를 삽입 할 수 아이디어를 통해 페이지에 새로운 요소를 삽입하는 자바 스크립트를 사용합니다.

관련 문제