getElementByClass
- это не метод, который существует во время выполнения JavaScript (или, по крайней мере, он не "нативный"). Это должно быть getElementsByClassName
, которое возвращает массив, а затем вы извлекаете все из этого массива.
Если ваш модальный элемент - единственный элемент этого класса, он должен быть скрыт, как и ожидалось, используя:
var elements = document.getElementsByClassName('modal-form');
elements.forEach(function(element) {
element.setAttribute('style', 'display: none');
});
или короче:
document.getElementsByClassName('modal-form').forEach(function(e) { e.setAttribute('style', 'display: none') });
Наконец, для вашего WKWebView
это должно работать:
webView.evaluateJavaScript("document.getElementsByClassName('modal-form').forEach(function(e) { e.setAttribute('style', 'display: none') });")
Было бы намного лучше, если бы этот конкретный модал имел уникальный id
и ссылаться на него, используя document.getElementById()
. id
уникальны для HTML.