stringByEvaluatingJavaScriptFromString не запускает JavaScript - PullRequest
1 голос
/ 11 сентября 2011

, когда я нажимаю клавишу «вверх» в моем веб-представлении, он регистрирует его, но не запускает предупреждение JS, как определено в stringByEvaluatingJavaScriptFromString, есть идеи? Спасибо

 - (void)applicationDidFinishLaunching:(NSNotification *)aNotification
    {
        [webView setMainFrameURL:@"http://google.com"];
        [webView setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable];

    }

     -(id)init {
        if( !(self = [super init]) ){
            return nil;
        }

        NSEvent * (^monitorHandler)(NSEvent *);
        monitorHandler = ^NSEvent * (NSEvent * theEvent){

            switch ([theEvent keyCode]) {
                case 123:    // Left arrow
                    NSLog(@"Left behind.");
                    break;
                case 124:    // Right arrow
                    NSLog(@"Right as always!");
                    break;
                case 125:    // Down arrow
                    NSLog(@"Downward is Heavenward");
                    break;
                case 126:    // Up arrow
                    [webView stringByEvaluatingJavaScriptFromString:@"alert('yo')"];
                    NSLog(@"Up, up, and away!");
                    break;
                default:
                    break;
            }
            // Return the event, a new event, or, to stop 
            // the event from being dispatched, nil
            return theEvent;
        };

        // Creates an object we do not own, but must keep track
        // of so that it can be "removed" when we're done
        eventMon = [NSEvent addLocalMonitorForEventsMatchingMask:NSKeyDownMask 
                                                         handler:monitorHandler];

        return self;
    }

1 Ответ

0 голосов
/ 11 сентября 2011

A WebView не будет отображать предупреждения JavaScript по умолчанию.Фактически вам нужно реализовать код для отображения предупреждений JavaScript самостоятельно, установив объект в качестве делегата WebView и реализовав

‑webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:

метод делегата.

Однако в вашем случае нет абсолютно никаких причин для этого, поскольку вы можете просто создать стандарт NSAlert.Я не понимаю, почему вы пытаетесь заставить WebView отображать предупреждение.Почему бы просто не отобразить его напрямую?

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