0

我想要做的是获取网页的某些部分/部分并显示在我的 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 方法返回的是它内部的内容,而不是它的属性,因此我们正在丢失格式,
即。在我的情况下,下面的代码没有返回具有“列”作为类名的标签的属性

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

这没有返回<div id="left" class="column">,因此我丢失了格式/样式

于 2012-10-16T06:40:48.357 回答