2012-01-04 4 views
2

하나의 html 파일을 가지고 있습니다.iPhone에서 UIWebView에서 Htmlstring을로드하고 자바 스크립트를 사용하여 텍스트를 바꿉니다.

<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 변수의 내용. 어떻게하면됩니까?

답변

6

왜 자바 스크립트에서해야합니까?

그냥 이동 목표 - C에서 작업을 수행하려면 : 대신 당신의 변수로 당신에게 HTML을 얻을 것이다

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

를 [[TEST0은]], 당신은 다음 loadHTMLString:baseURL:를 사용하여있는 UIWebView에로드 할 수있다.

+0

와우 대단하다! 오늘 밤해볼 게요. 의심 할 여지가 없다면 당신의 솔루션을 최고로 평가할 것입니다. 정말 고마워! –

+0

정말 고마워요! 그것은 위대한 작품! –

+0

그리고 doSomething() 메서드를 호출하려면 어떻게해야합니까 ??? –

1

는 내가 전에 그런 일을했다,하지만 난

단지 첫번째 이후

[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]; 

및 HTML 파일을 구축이

[webView loadHTMLString:myHtml]; 
같은 웹보기에로드 목적 C.

에 그것을했다
7

UIWebView-stringByEvaluatingJavaScriptFromString: 메소드를 사용하면로드 된 HTML을 수정할 수 있습니다.

NSString *title = @"New Title"; 
[webView stringByEvaluatingJavaScriptFromString: 
    [NSString stringWithFormat:@"document.getElementById('title').innerHTML = %@", title]]; 
+0

이 솔루션을 사용해 보았지만 텍스트가 HTML 컨텐트에서 대체되지 않습니다. 이 문제 또는 원인은 무엇입니까? – YuDroid

+0

자리 표시 자 주위에 작은 따옴표가 있어야합니다 (예 : ... innerHTML = '% @' – egarc

관련 문제