141Getting Javascript Properties from Objective-C

Access Javascript properties from Objective-C…
NSString *href = [[webView windowScriptObject] evaluateWebScript:@"location.href"];
http://developer.apple.com/documentation/Cocoa/Conceptual/DisplayWebContent/Tasks/JavaScriptFromObjC.html … and forwarding it to Quartz Composer: [quarrzComposerView setValue:href forInputKey:@"location"]; HTML <html> <head> <script language="JavaScript1.2"> document.captureEvents(Event.MOUSEMOVE); document.onmousemove = getMouseXY; var tempX = 0; var tempY = 0; function getMouseXY(e) { tempX = e.pageX; tempY = e.pageY; if (tempX < 0) tempX = 0; if (tempY < 0) tempY = 0; document.Show.MouseX.value = tempX; document.Show.MouseY.value = tempY; console.log(); return true; } function getKey() { document.Show.keyOutput.value = document.Show.keyInput.value; keyconsole.key(); return true; } </script> <style> #d { //display: none; //background: #f00; } </style> </head> <body> <form name="Show" id="d"> X <input type="text" name="MouseX" value="0" size="4"><br> Y <input type="text" name="MouseY" value="0" size="4"><br> KeyInput <input type="text" name="keyInput" size="4" onChange="getKey()" ><br> KeyOutput<input type="text" name="keyOutput" size="4"><br> </form> </body> </html> Obj-C - (void)webView:(WebView *)sender didClearWindowObject:(WebScriptObject *)windowScriptObject forFrame:(WebFrame *)frame { [windowScriptObject setValue:self forKey:@"console"]; [windowScriptObject setValue:self forKey:@"keyconsole"]; } /* // deprechiated - (void)webView:(WebView *)webView windowScriptObjectAvailable:(WebScriptObject *)windowScriptObject { [windowScriptObject setValue:self forKey:@"console"]; [windowScriptObject setValue:self forKey:@"keyconsole"]; } */ + (BOOL)isSelectorExcludedFromWebScript:(SEL)selector { if (selector == @selector(doOutputToLog:) ) { return NO; } else if (selector == @selector(doOutputToKey:) ) { return NO; } return YES; } + (NSString *) webScriptNameForSelector:(SEL)sel { if (sel == @selector(doOutputToLog:)) { return @"log"; } else if (sel == @selector(doOutputToKey:)) { return @"key"; } else { return nil; } } - (void) doOutputToLog: (NSString*) theMessage { int mx = [ [[theWebView windowScriptObject] evaluateWebScript:@"document.Show.MouseX.value"] intValue]; int my = [ [[theWebView windowScriptObject] evaluateWebScript:@"document.Show.MouseY.value"] intValue]; NSLog(@"%i, %i", mx, my ); } - (void) doOutputToKey: (NSString*) theMessage { key = [[theWebView windowScriptObject] evaluateWebScript:@"document.Show.keyOutput.value"]; NSLog(@"%@", key ); }