0

我正在尝试从网站上抓取数据,而我想要的数据位于 span 标签中。到目前为止,我所做的是:

var str: Any?
webView.evaluateJavaScript("innerDoc.getElementById(spanId).innerHTML", completionHandler: 
    { (html: Any?, error: Error?) in
       str = html

    })
print(str)

但是当我这样做时,我会得到零。如果我print(html)代替str = html我得到我想要的输出。

我在这里做错了什么?为什么我不能将该值存储在变量中?

4

1 回答 1

0

评估 JavaScript 需要 WKWebView 一些时间。在这种情况下,print(str)语句很可能发生在评估 JS 脚本之前。尝试将它移动到评估语句的完成处理程序中,看看它是否有效。

于 2018-10-12T10:13:17.870 回答