#swift #cocoa #wkwebview #wknavigationdelegate
#swift #cocoa #wkwebview #wknavigationdelegate
Вопрос:
Я загружаю WKWebView с веб-страницы и пытаюсь выполнить javascrip:
func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
webView.evaluateJavaScript("document.getElementById('someElement').innerText") { (result, error) in
if error != nil {
print(error?.localizedDescription ?? "")
}
}
}
Но я получаю эту ошибку:
po error
▿ Optional<Error>
- some : Error Domain=WKErrorDomain Code=4 "A JavaScript exception occurred" UserInfo={WKJavaScriptExceptionLineNumber=1, WKJavaScriptExceptionMessage=TypeError: null is not an object (evaluating 'document.getElementById('someElement').innerText'), WKJavaScriptExceptionColumnNumber=39, WKJavaScriptExceptionSourceURL=https://somewebsite.com/, NSLocalizedDescription=A JavaScript exception occurred}
Почему я получаю эту ошибку?, кто-нибудь из вас знает, что я делаю неправильно или как это обойти?
Комментарии:
1. Не могли бы вы, пожалуйста, напечатать просто
error
и нетerror.localizedDescription
? Вы скрываете подробную информацию от себя!2. @Sulthan Я обновил ошибку. Пожалуйста, дайте мне знать, если вам понадобится что-нибудь еще
3.
null is not an object
очевидно. Это означает, что нет элемента с заданным идентификаторомsomeElement
(методgetElementById
возвращаетnull
). Убедитесь, что вы правильно ввели идентификатор и что он действительно существует в документе.
Ответ №1:
document.getElementById() возвращает значение null, если элемент не удалось найти. Поэтому я думаю, что имя ‘someElement’ отсутствует на веб-странице.