[webkit-dev] JavaScriptCor API use
Darin Adler
darin at apple.com
Tue May 26 08:56:35 PDT 2009
On May 26, 2009, at 8:32 AM, Jack Wootton wrote:
> 1. I'm attempting to use the JavaScriptCore API to add new JSObjects
> to the JavaScript environment. In order to use the API I include
> "JavaScriptCore.h". However in doing so, JSStringRefCF.h contains
> errors. The system include CoreFoundation/CoreFoundation.h cannot be
> opened. Has anyone had this problem before?
The JavaScriptCore.h header is a Mac OS X Framework header, and
intended for use only on Mac OS X.
On other platforms it shouldn't even be installed. You can include the
individual header, or if you want a similar "includes it all" header
on some other platform or for cross-platform code, use JavaScript.h.
> 2. After a JSObject has been successfully created using the
> JavaScriptCore API, is it correct to use the following method to add
> it to the JavaScript environment:
>
> void Window::put(ExecState* exec, const Identifier& propertyName,
> JSValue* value, int attr)
No. That is only for internal use within WebCore. You’ll need to get a
JSObjectRef for the window object. How you do that depends on the
platform you're on. Since you don't say what platform you're working
on I can't tell you how to do it. On Mac OS X you would implement the
frame load delegate webView:windowScriptObjectAvailable: method and
then call the JSObjectRef method on the Objective-C object from that
method.
-- Darin
More information about the webkit-dev
mailing list