【发布时间】:2012-10-16 14:40:48
【问题描述】:
我想要做的是获取网页的某些部分/部分并显示在我的 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 上遗漏了什么,请告诉我。
【问题讨论】:
-
它是你真正的代码跳过 webViewDidFinishLoad 已经修改的字符串?
-
我首先加载带有联系页面的 webview,在委托方法 webView 完成加载中,我使用 stringByEvaluatingJavaScriptFromString 并提取联系页面的所需部分,然后再次使用新提取的 HTML 加载 webview。
-
这个新提取的 html 是否再次触发了委托上的 webviewfinishload?
-
是的,补习班。它再次调用 webviewfinishload。我正在使用 if 语句来区分两者。我在这里只是为了简单起见
-
好的,看起来是正确的,可能是文档类型或字符集问题?祝你好运小丑;)
标签: iphone html ios uiwebview formatting