Обновление: этот вопрос является двухъярусным. Двигайся, здесь нечего видеть. Вы можете установить значение текстового поля пароля из JS или ObjC. Я был не прав.
У меня есть приложение Cocoa на основе WebKit, которое загружает HTML-документ, содержащий HTML-форму в WebView
. HTML-форма содержит текстовое поле пароля, например:
<form name="foo">
<input type="password" name="bar">
</form>
Я бы хотел установить значение этого текстового поля программно (если возможно, из Objective-C, но я сделаю все, что сработает).
Я считаю, что в WebKit (и во всех других современных браузерах) реализована функция безопасности JavaScript, которая не позволяет сценариям JS устанавливать это значение программным путем.
К сожалению, похоже, что такое же ограничение безопасности применимо к Objective-C, поскольку я не могу установить значение с помощью ObjC. Хотя ограничение JS является разумным, ObjC кажется немного неразумным.
Есть ли какой-либо способ программно установить значение этого поля (если не считать связывание настраиваемого WebKit в моем приложении, которое было изменено, чтобы разрешить это)? Я открыт для любых предложений.
Вот что я попробовал в ObjC:
DOMHTMLDocument *doc = (DOMHTMLDocument *)[webView mainFrameDocument];
DOMHTMLFormElement *formEl = (DOMHTMLFormElement *)[[doc forms] namedItem:@"foo"];
DOMHTMLInputElement *inputEl = (DOMHTMLInputElement *)[[formEl elements] namedItem:@"bar"];
[inputEl setValue:@"baz"];
это не имеет никакого эффекта.