我已在WKWebView中加载网站网址。 在处理 WKScriptMessageHandler 后的某个阶段,我做了一些 native 操作。
完成 native 操作后,我想在现有加载的WKWebView中调用java脚本函数。
用于测试Javascript功能很简单
function try_once()
{
// some code
}
在 Swift 中我做到了:
let str = "try_once();"
self.wkWeb.evaluateJavaScript(str, completionHandler: { (obj, error) in
if error != nil
{
print("Error: \(String(describing: error))")
}
else
{
print("Object : \(String(describing: obj))")
}
})
但是我收到了这个错误:
Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=ReferenceError: Can't find variable: try_once, WKJavaScriptExceptionSourceURL=http://SOMEURL/user/signin/?_next=/v2/#, NSLocalizedDescription=A JavaScript exception occurred, WKJavaScriptExceptionColumnNumber=9})
最佳答案
这可能是因为您尝试执行的 JavaScript 函数在方法调用时未加载。您可以添加一个观察者来在加载脚本后执行它。 要添加观察者,请查看此 answer .
引用:Can't find variable error when calling method
谢谢。希望这会有所帮助。
关于javascript - 如何在WKWebView中调用带参数/不带参数的JavaScript函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43252383/