访问 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 代码执行下一个过程。
有关详细信息,请查看此 。
我的网页中有一个带有 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 代码执行下一个过程。
有关详细信息,请查看此