0

私がやろうとしているのは、Webページの特定の部分/セクションを取得し、UIWebViewに表示することです。

表示しようとしているパーツには、いくつかの入力フィールドと送信ボタンがあります。UIWebviewを使用して抽出したパーツを表示する場合。すべてのフォーマットが失われています。スペースなどの詳細は失われます。

そのhtmlページを自分のコンピューターにダウンロードして手動で変更(不要な部分を削除)したところ、コンピューターで正常に動作します。

これが私のサンプルコードです。他の関連する質問を見て無駄にした。

-(IBAction)showContactPage {

NSString *urlContents = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"wwww.example.com/contact.html"] encoding:NSASCIIStringEncoding error:nil];

[myWebView loadHTMLString:urlContents baseURL:[NSURL URLWithString:@"http://www.example.com/"]];
}

//WebView Delegate method

 - (void)webViewDidFinishLoad:(UIWebView *)webView{

 NSString *urlContents = [myWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('column')[0].innerHTML"]; 

 NSString *headContents = [myWebView stringByEvaluatingJavaScriptFromString:@"document.head.innerHTML"];

 urlContents = [NSString stringWithFormat:@"<html><head>%@</head><body>%@</body></html>",headContents,urlContents];

 [myWebView loadHTMLString:urlContents baseURL:[NSURL URLWithString:@"http://www.example.com/"]];

 [self.view addSubview:myWebView];

}

UIwebviewで何かが足りない場合はお知らせください。

4

1 に答える 1

0

それがどこでうまくいかなかったかを見つけました。stringByEvaluatingJavaScriptFromStringメソッドは、その属性ではなく、その内部にあるものを返しているため、フォーマットが失われてい
ます。私の場合、次のコードはクラス名として「column」を持つタグの属性を返していません

urlContents = [myWebView stringByEvaluatingJavaScriptFromString:@"document.getElementsByClassName('column')[0].innerHTML"]; 

これは戻っ<div id="left" class="column">てこなかったので、私はフォーマット/スタイリングを失っていました

于 2012-10-16T06:40:48.357 に答える