我试图从网站上抓取数据,而我想要的数据是跨区标记。到目前为止,我所做的是:
var str: Any?
webView.evaluateJavaScript("innerDoc.getElementById(spanId).innerHTML", completionHandler:
{ (html: Any?, error: Error?) in
str = html
})
print(str)
但是当我这样做时,我就是零。如果我用print(html)
代替str = html
,我会得到我想要的输出。
我在这里做错了什么?为什么我不能将该值存储在变量中?
答案 0 :(得分:0)
评估JavaScript需要花费一些时间WKWebView。在这种情况下,print(str)
语句很可能在评估JS脚本之前发生。尝试将其移到评估声明的完成处理程序中,看看它是否有效。