【发布时间】:2016-02-18 06:45:43
【问题描述】:
我正在尝试获取 UIWebView 中显示的网页标题中的数据。
如何从 UIWebView 获取原始(未格式化的)HTML 字符串?
另外,我使用的是 iOS 9。
我的问题类似于 Reading HTML content from a UIWebView ,但这篇文章是 6 年前的。
【问题讨论】:
我正在尝试获取 UIWebView 中显示的网页标题中的数据。
如何从 UIWebView 获取原始(未格式化的)HTML 字符串?
另外,我使用的是 iOS 9。
我的问题类似于 Reading HTML content from a UIWebView ,但这篇文章是 6 年前的。
【问题讨论】:
来自您所链接问题的top answer:
NSString *html = [yourWebView stringByEvaluatingJavaScriptFromString:
@"document.body.innerHTML"];
会翻译成 Swift:
let html = yourWebView.stringByEvaluatingJavaScriptFromString("document.body.innerHTML")
stringByEvaluatingJavaScriptFromString 返回一个可选项,因此您可能希望稍后使用 if let 语句:
if let page = html {
// Do stuff with the now unwrapped "page" string
}
【讨论】:
迅速 4:
if let html = self.webView.stringByEvaluatingJavaScript(from: "document.body.innerHTML"){
}
【讨论】:
页面渲染完成后不要忘记获取html,如果太早获取html,结果会为空。
func webViewDidFinishLoad(webView: UIWebView) {
print("pageDidFinished")
if let html = webView.stringByEvaluatingJavaScriptFromString("document.documentElement.outerHTML") {
print("html=[\(html)]")
}
}
【讨论】: