这个表达似乎不起作用。它是Mac应用程序,而不是iPhone应用程序。
[[mainWebView mainFrame] stringByEvaluatingJavaScriptFromString:[NSString stringWithFormat:@"document.getElementById('username').value='%@';document.getElementById('password').value='%@';", [ebuddyidField value], [passwordField value]]];
答案 0 :(得分:3)
您需要发送stringByEvaluatingJavaScriptFromString:
消息to the WebView,而不是发送到主框架。
此外,假设ebuddyidField
和passwordField
是NSTextFields(后者可能是NSSecureTextField),它们不响应value
消息。他们回复的最近的消息是objectValue
,但您可能更想要stringValue
。
编译器应该已经为您提供了所有三个问题的警告。转到“构建结果”窗口并修复每个警告。然后turn some more on并修复它们。您的应用程序将更稳定,更强大,并且泄漏更少。
答案 1 :(得分:0)
那是因为WebFrame
没有回复-stringByEvaluatingJavaScriptFromString:
。这是iOS上的UIWebView
方法,与Mac OS X上的WebKit无关。
请尝试使用[[webView windowScriptObject] evaluateWebScript:...]
。但是,该方法的结果是id
,其类型可能是也可能不是NSString
。
有关Mac OS X上WebKit中JavaScript交互的更多信息,请参阅WebScriptObject
类文档。
修改:实际上,回过头来查看WebView
文档,我发现它确实有-stringByEvaluatingJavaScriptFromString:
方法。因此,请尝试将其发送到Web视图而不是Web框架。)