使用evaluateJavaScript从WKWebView获取标题

我有一个非常简单/容易的问题,但对java的经验绝对没有。 我有一个WKWebView ,我想使用javascript document.getElementById获取页面的标题文本。

我试图获取标题的网页有以下代码:

   

Schedules

这段代码被删节,所以我为任何错误道歉。

然后我试图访问Swift中的pageTitle:

 func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) { webView.evaluateJavaScript("document.getElementById('pageTitle').value") { (result, error) -> Void in if error != nil { print(result) } } } 

结果是返回零。 经过几个小时的搜索,我仍然不知道如何让它工作。 任何帮助表示赞赏。

您不应该使用javascript来检索页面标题。 WKWebView有一个title属性,可以为你检索这个

https://developer.apple.com/library/ios/documentation/WebKit/Reference/WKWebView_Ref/#//apple_ref/occ/instp/WKWebView/title

title页面标题。 (只读)

SWIFT var title: String? { get } var title: String? { get }

WKWebView类是此属性的键值观察(KVO)兼容。

适用于iOS 8.0及更高版本。

使用Node.textContent获取文本节点内容的正确副本。

 webView.evaluateJavaScript("document.getElementById('pageTitle').textContent") { (result, error) -> Void in if error != nil { print(result) } } 

我使用了相同的代码片段,并解决了问题…它只会打印结果,如果它是“无”!

尝试:

 webView.evaluateJavaScript("document.getElementById('pageTitle').textContent") { (result, error) -> Void in if error == nil { print(result) } } 

在代码中出现错误时,代码将打印结果。 当没有错误发生时,这将不打印任何内容。

所以将代码更改为此,一切正常。

 func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) { webView.evaluateJavaScript("document.getElementById('pageTitle').innerHTML") { (result, error) -> Void in if error != nil { print(error) } print(result) } } 

这段代码对我有用:

 webView.evaluateJavaScript("document.title').textContent") { (result, error) -> Void in if error == nil { print(result) } }