访问 angular 生成的内容时,evaluateJavaScript() 无法获取稳定的内容?

evaluateJavaScript() can't get stable content when access content produced by angular?

我的网页中有一个带有 id test 的 p 标签,当我按如下方式放置时一切正常。

html,

<p id="test">hhhhhhhhhhhh</p>
<body ng-app="home" ng-controller="HomeController" style="min-height:700px;">
  <printerinfo></printerinfo>
</body>

swift3,

func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    self.wk.evaluateJavaScript("document.getElementById('test').innerHTML;") { (result, error) -> Void in
    ->
       if error != nil {
            print(error)
       }
        print(result)
    }
}

当我将 p 标签移动到模板 printerinfo 时,我得到

UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=TypeError: null is not an object (evaluating 'document.getElementById('test').innerHTML')

大多数情况,其余情况与结果 Optional(hhhhhhhh)

配合良好

这里是 ios 从 Safari 技术预览的开发 > iphone 设备名称 的 window 查看的 wkwebview 页面内容。我可以从控制台访问 innerHTML。

现在我猜 evaluateJavaScript 已经在 anjular 完成加载网页之前执行了。

这是由网页的动态内容引起的。我通过使用 javascript 检查页面何时加载来解决这个问题,然后通知本机 swift 代码执行下一个过程。

有关详细信息,请查看此