stringByEvaluatingJavaScriptFromString не работает - PullRequest
2 голосов
/ 29 января 2011

Это выражение не похоже на работу. Это приложение для Mac, а не приложение для iPhone.

[[mainWebView mainFrame] stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById('username').value='%@';document.getElementById('password').value='%@';", [ebuddyidField value], [passwordField value]]];

Ответы [ 2 ]

3 голосов
/ 30 января 2011

Вам необходимо отправить stringByEvaluatingJavaScriptFromString: сообщение в WebView , а не в его основной фрейм.

Кроме того, предполагая, что ebuddyidField и passwordField являются NSTextFields (последние, возможно, NSSecureTextField), они не отвечают на сообщение value. Самое близкое сообщение, на которое они отвечают, это objectValue, хотя вам, скорее всего, нужно stringValue.

Компилятор должен был дать вам предупреждения для всех трех проблем. Перейдите в окно результатов сборки и исправьте каждое предупреждение. Затем включите еще и исправьте их тоже. Ваше приложение будет гораздо более стабильным, более надежным и менее протекающим.

0 голосов
/ 30 января 2011

Это потому, что WebFrame не отвечает на -stringByEvaluatingJavaScriptFromString:. Это метод UIWebView в iOS, и он не имеет ничего общего с WebKit в Mac OS X.

Попробуйте вместо [[webView windowScriptObject] evaluateWebScript:...]. Однако результатом этого метода является id, а его тип может быть или не быть NSString.

См. Документацию класса WebScriptObject для получения дополнительной информации о взаимодействии JavaScript в WebKit в Mac OS X.

Редактировать: На самом деле, возвращаясь назад и просматривая документы WebView, я вижу, что действительно есть метод -stringByEvaluatingJavaScriptFromString:. Поэтому попробуйте отправить это в веб-представление, а не в веб-фрейм.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...