#objective-c #cocoa-touch #ios #uiview #uiwebview
#objective-c #cocoa-touch #iOS #uiview #uiwebview
Вопрос:
У меня есть UIWebView, и я хочу присвоить одному из его текстовых полей определенный текст. Возможно ли это вообще? Если да, то как я могу это сделать? Спасибо
Ответ №1:
Да, вы можете задать текст для текстового поля в UIWebView с помощью javascript
В качестве примера, если у вас есть текстовое поле в этой форме
<input id="textFieldID" type="text" value="TextValue"/>
Установка значения:
[theWebView stringByEvaluatingJavaScriptFromString:@"document.getElementById('textFieldID').value = 'Hello World'"]
Получение значения:
NSString* value = [theWebView stringByEvaluatingJavaScriptFromString:@"document.getElementById('textFieldID').value"];
Комментарии:
1. Как я могу узнать идентификатор текстового поля, спасибо за ответ.
2. В зависимости от того, к какому типу поля вы хотите получить доступ, вы всегда можете получить поля с помощью: document.getElementsByTagName(), где вы затем указываете, нужно ли вам TEXTAREA, INPUT или SELECT, а затем просто выбираете одно из возвращаемого им массива. Если вы хотите получить второе поле ввода со всей страницы, вам просто: document.getElementsByTagName(‘ВВОД’)[1].значение
3. в document.getElementsByTagName(‘INPUT’)[1]. значение, какой код должен быть там, если я хочу, чтобы весь список текстовых полей находился внутри WebView
Ответ №2:
В Swift-5 с WKWebView используйте это
Чтобы задать текстовое поле
webView.evaluateJavaScript("document.getElementById('textFieldID').value = 'Hello'") { (result, error) in
print(result) //This will Print Hello
}
Чтобы получить значение текстового поля
webView.evaluateJavaScript("document.getElementById('textFieldID').value") { (result, error) in
print(result) //This will Print value of text field
}