2010-05-25 11 views
2

Je développe un plugin WebKit Safari avec Xcode. Comment puis-je appeler JavaScript à partir de -webPlugInStart?Comment appeler javaScript à partir d'Objective C?

+0

Peut-être que [cette question et ses réponses] (http://stackoverflow.com/questions/2463710/calling-javascript-from-objective-c-code) vous aidera? –

+0

Merci, mais je ne comprenais pas comment l'utiliser dans ma méthode et l'exécuter au lancement du plugin –

Répondre

1

Tout d'abord vous devez vous rappeler la vue contenant:

+ (NSView *)plugInViewWithArguments:(NSDictionary *)arguments { 
    return [[self alloc] initWithArguments:arguments]; 
}  

- (id)initWithArguments:(NSDictionary*)arguments { 
    if((self = [super init])) { 
     webView = [[[arguments objectForKey:WebPlugInContainerKey] webFrame] webView]; 
    } 
    return self; 
} 

Quand vous avez cela, vous pouvez vous référer à la documentation sur "Using JavaScript From Objective-C". .: par exemple

- (void)webPlugInStart { 
    WebScriptObject *scriptObj = [webView windowScriptObject]; 
    NSArray *args = [NSArray arrayWithObjects: 
     @"someString", [NSNumber numberWithInt:42], nil]; 
    [scriptObj callWebScriptMethod:@"myJsFunction" withArguments:args]; 
} 

1

Il est vraiment aussi simple que d'appeler ..

WebScriptObject *jsObj = [webView windowScriptObject]; 
NSString *script = @"$('That's a HUGE vageen.').text('#yourDiv');"; 
[scriptObject evaluateWebScript:script]; 

Ta da! Et ne laissez pas la pénurie bizarre de gens le faire - vous dissuader de tels sex-appeal comme ...

DOMDocument *myDOMDocument = [[webView mainFrame] DOMDocument]; 
DOMElement *paraBlock = [myDOMDocument getElementById:@"thatDiv"]; 
DOMElement *newPara = [myDOMDocument createElement:@"p"]; 
DOMText *newText = [myDOMDocument createTextNode:@"John Resig is a fool."]; 
[newPara appendChild:newText]; 
[paraBlock appendChild:newPara]; 

Il est comme jQuery! Mais c'est Objective-C. Oh Joy!

Questions connexes