2011-01-29 4 views
2

この式は機能していないようです。それは、Macアプリケーションではなく、iPhoneアプリである。 WebFrame-stringByEvaluatingJavaScriptFromString:に応答しないためですstringByEvaluatingJavaScriptFromStringが機能しない

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

答えて

3

stringByEvaluatingJavaScriptFromString:メッセージto the WebViewをメインフレームに送信する必要があります。

また、ebuddyidFieldpasswordFieldがNSTextField(NSSecureTextFieldの可能性もある)であると仮定すると、valueメッセージに応答しません。彼らが最も近いメッセージはobjectValueですが、おそらくstringValueが必要です。

コンパイラは3つの問題すべてについて警告を出しているはずです。 [Build Results]ウィンドウに移動し、すべての警告を修正します。その後turn some more onも修正してください。あなたのアプリケーションははるかに安定し、より堅牢で、漏れも少なくなります。

+0

stringValueの部分をありがとう、私はいつもそれを忘れてしまいます。しかし、それは私にもう警告を与えず、それでも動作していません... – icant

+0

@icant:あなたの修正したコードを表示し、それがどのように動作していないのかを具体的に示すためにあなたの質問を編集する必要があります" –

0

。これはiOSのUIWebViewの方法で、Mac OS XのWebKitとは関係ありません。

代わりに[[webView windowScriptObject] evaluateWebScript:...]を試してみてください。ただし、その方法の結果はidであり、そのタイプはNSStringである場合とそうでない場合があります。

は、Mac OS X上のWebKitのJavaScriptの相互作用の詳細はWebScriptObjectクラスのドキュメントを参照してください

編集:は実際には、戻って行くとWebViewドキュメントを見て、私はそれが実際に-stringByEvaluatingJavaScriptFromString:メソッドを持っているん見ます。ウェブフレームではなくウェブビューに送信してください)

+0

「NoevaluateWebScript:method found」と表示されます。これは私のコードです:\t [mainWebView windowScriptObject] evaluateWebScript:[NSString stringWithFormat:@ "document.getElementById( 'username')value = '%@'; document.getElementById( 'password')。value = '%@' ; "、[ebuddyidフィールド値]、[パスワードフィールド値]]]; – icant

+0

'#import 'しましたか? –

+0

はい、私はヘッダファイルにインポートしました。 – icant

関連する問題