我试图在<div class="work-elem">
<div class="work-elem">
<div class="work-elem">
<div class="work-elem">
$(".work-elem:first").addClass("active");
$(".work-elem").each(function() {
$(".work-elem").hover(function() {
$(this).removeClass("active");
$(this).addClass("active");
},
function() {
$(this).removeClass("active");
});
});
中同步加载Javascript。从我的研究看来,WKWebView
方法看起来是异步的,这会导致错误,因为页面会在JS之前加载,它会覆盖很多行为(由于异步性质,它只能工作一部分时间)。
我已经尝试了这一点,但它似乎无法运作:
evaluateJavaScript
我知道它不起作用,因为页面有时会加载,好像JS不在那里。我可以做同样的事情来同步这个过程吗?
答案 0 :(得分:1)
您可以定义WKNavigationDelegate
,以便在加载WKWebView
的页面时收到通知
class Controller: UIViewController, WKNavigationDelegate {
@IBOutlet var webView: WKWebView!
override func viewDidLoad() {
self.view = webView
webView.navigationDelegate = self
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
print("page loaded")
// <--- call your method from here
}
}
您现在可以在webView(wevView:didFinishNavigation:)