ios – 在UIWebView中获取页面标题?

我有一个UIWebView,想要显示页面标题.我用这段代码做了:

  func webViewDidFinishLoad(aWebView: UIWebView) {
    titleLabel?.text = aWebView.stringByEvaluatingJavaScriptFromString("document.title")!
  }

这适用于大多数页面,但有一些页面没有显示标题.例如https://stackoverflow.com/users.当我在浏览器中打开此页面时,会显示标题但不会在我的模拟器中显示.

最佳答案 也许您在某些页面上由于重定向等而发生了嵌套加载.尝试跟踪加载和完成,以便您知道最后一个已完成.

请求页面加载时将计数器设置为0.页面加载开始时递增此值,页面加载完成或失败时递减.

当计数器变为0时,运行您的javascript.

请原谅我,但有点像:

func webViewDidStartLoad(aWebView: UIWebView) {
  self.webLoads++
}

func webViewDidFinishLoad(aWebView: UIWebView) {
  self.webLoads--
  if (webLoads == 0){
    titleLabel?.text = aWebView.stringByEvaluatingJavaScriptFromString("document.title")!
  }
}

func webView(webView: UIWebView!, didFailLoadWithError error: NSError!){
  self.webLoads--;
}
点赞