【发布时间】:2012-06-11 01:38:45
【问题描述】:
我有一个加载了简单 rtf 文件的 UIWebView。 (包含一行“这是一个测试”)
UIWebView* webview = [[UIWebView alloc] initWithFrame:CGRectMake(5, 50, 310, 400)];
[[self view] addSubview:webview];
[webview loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"test" ofType:@"rtf"]isDirectory:NO]]];
NSString *html = [webview stringByEvaluatingJavaScriptFromString: @"all"];
NSLog (@"html:%@", html.debugDescription);
“这是文本”行正确显示在 UIWebView 内。 有谁知道是否有可能将该行文本(或更多)提取到 NSString 或其他可访问的容器中?
我知道有:
NSString *html = [webview stringByEvaluatingJavaScriptFromString: @"document.documentElement.outerHTML"];
但这(显然)在这里不起作用。有任何想法吗 ?我基本上是在尝试(假)将 rtf 文件转换为 iOS 上的 NSString。 谢谢!
【问题讨论】:
-
你试过 document.body.innerHTML 吗?
-
是的。和 document.body.innerText 。两者都返回空白。
-
在调用 stringByEvaluatingJavaScriptFromString: 之前您是否要等到页面加载完毕?
-
其实你是对的。我必须实现 webViewDidFinishLoad 委托方法,然后我开始在其中获取一些 html 结果。 sleep(int) 不是要走的路。您应该将其更改为 aswer。
标签: javascript objective-c ios uiwebview