0

Web サイトからデータをスクレイピングしようとしていますが、必要なデータは span タグにあります。これまでのところ、私がやったことは次のとおりです。

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

    })
print(str)

しかし、これを行うと、nilになります。print(html)代わりに置くと、必要なstr = html出力が得られます。

ここで何が間違っていますか?その値を変数に格納できないのはなぜですか?

4

1 に答える 1

0

JavaScript の評価には WKWebView に時間がかかります。この場合、print(str)JS スクリプトが評価される前にステートメントが実行される可能性が高くなります。評価ステートメントの完了ハンドラー内に移動してみて、機能するかどうかを確認してください。

于 2018-10-12T10:13:17.870 に答える