Получить информацию о текстовом поле с загруженной веб-страницы - Mac OS X Development - PullRequest
3 голосов
/ 08 июня 2009

Я новичок в мире Mac.

Мне нужно создать приложение, которое сможет извлекать информацию, введенную на веб-странице, из текстовых полей. Мое приложение будет загружать веб-страницу, размещенную где-нибудь, а внутри веб-страницы будет ряд текстовых полей и кнопка отправки. После нажатия кнопки я должен прочитать информацию, введенную в текстовые поля этой веб-страницы.

У меня есть следующий код:

+ (BOOL)isSelectorExcludedFromWebScript:(SEL)aSelector
{
// For security, you must explicitly allow a selector to be called from JavaScript.

if (aSelector == @selector(showMessage:)) {
    return NO; // i.e. showMessage: is NOT _excluded_ from scripting, so it can be called.
}

return YES; // disallow everything else
}

- (void)showMessage:(NSString *)message
{
    // This method is called from the JavaScript "onClick" handler of the INPUT element 
    // in the HTML. This shows you how to have HTML form elements call Cocoa methods.

  DOMDocument *myDOMDocument = [[webView mainFrame] DOMDocument];     // 3
  DOMElement *contentTitle = [myDOMDocument getElementById:@"TexTest"];   // DOM
  message = [[contentTitle firstChild] nodeValue];                                            // lines

  NSRunAlertPanel(@"Message from JavaScript", message, nil, nil, nil);
}

Когда я запускаю приложение, и оно попадает в NSRunAlertPanel, оно не хочет работать дальше.

Когда я комментирую 3 строки DOM, NSRunAlertPanel показывает свое сообщение, и я могу продолжить.

HTML выглядит так:

<body> 
  <h1 id="contentTitle">Some kind of title</h1>
  <div id="main_content"> 
    <p>Some content</p> 
    <p>Some more content</p> 
  </div> 
  <div>
    <input id="TexTest" value=" " type="text">
  </div> 
  <div>
    <input id="message_button" value="Show Message" onclick="window.AppController.showMessage_('Hello there...');" type="button">
  </div>
</body>

Кто-нибудь может помочь в этом вопросе?

1 Ответ

1 голос
/ 09 июня 2009

Я нашел решение для моей проблемы. Ответ заключается в следующем изменении кода:

- (void)showMessage:(NSString *)message
{
    // This method is called from the JavaScript "onClick" handler of the INPUT element 
    // in the HTML. This shows you how to have HTML form elements call Cocoa methods.

  DOMHTMLDocument *myDOMDocument = [[webView mainFrame] DOMDocument];
  DOMHTMLElement *contentTitle = [myDOMDocument getElementById:@"TexTest"];
  message = [contentTitle value];

  NSRunAlertPanel(@"Message from JavaScript", message, nil, nil, nil);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...