Hello everyone,
I started a small project for a "light" JavaScript parser using the
Rhino technology. My idea is to have a fake JavaScript parser that can
execute the code inside a page and give me the final result of the
execution as raw text.
I started by writing some Java Classes which correspond to Javascript
common objects, like Document, Window, Location, and then hooking them
one by one such as:
ScriptableObject.putProperty(scope, "window", jsWindow);
where jswindow belongs to the custom Java class JavaScriptWindow I
wrote. This worked actually pretty well in many cases; I'm trying to run
it on a very small set of 485 pages containing scripts, and they arrive
to an end without exceptions (even though I can't say it's a "correct"
execution) in 50% of the cases.
In another 25% of cases the script cannot complete because some function
is missing (it's probably incorporated from some external script) but on
the remaining 25% is due some other objects missing.
For instance, executing this line I get an error on indexOf:
navigator.userAgent.indexOf('MSIE')>=0
even if in my class JavaScriptNavigator there is a
public String userAgens
field, and the class is hooked into the scope with:
ScriptableObject.putProperty(scope, "location", jsWindow.location);
I guess my whole approach is naive and I need to change it completely,
maybe using Java classes that implement the Scriptable interface, but
I'd like some expert advice on it. Can anybody give me a hint?
Thanks,
Luca
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino