我的网页上有一个带有id测试的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不是对象 (评估'document.getElementById('test')。innerHTML')
大多数情况下,遗留情况适用于结果Optional(hhhhhhhh)
这是从 Safari技术预览的开发版&gt;中查看的ios wkwebview页面内容。 iphone设备名称的窗口。我可以从控制台访问innerHTML。
现在我想在anjular完成网页送入之前已经执行了evaluateJavaScript。
答案 0 :(得分:0)
这是由网页的动态内容引起的。我通过使用javascript检查页面何时加载来解决这个问题,然后通知本机swift代码来执行下一个过程。
有关详细信息,请查看 post 。