【问题标题】:Saving html data in variable from completion handler in Swift WKWebView在 Swift WKWebView 中的完成处理程序中将 html 数据保存在变量中
【发布时间】:2018-05-20 05:10:48
【问题描述】:

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

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

    })
print(str)

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

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

【问题讨论】:

    标签: javascript html swift wkwebview wknavigationdelegate


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多