Fredy Mesia a écrit :
> Hi everyone,
>
> I get the error : org.mozilla.javascript.EcmaError: TypeError: Cannot find
> function log. (test.js#7) when I execute:
>
>
> cx.evaluateReader(scope, *new* FileReader(*new* File("path/test.js")), "
> test.js", 1, *null*);
>
> My test.js looks like that:
>
> console.log("s");
> I load Console.class with "ScriptableObject.*defineClass*(scope, Console.*
> class*);" and it looks like this:
>
> import org.mozilla.javascript.Scriptable;
> import org.mozilla.javascript.ScriptableObject;
>
> public class Console extends ScriptableObject {
>
> static void init(Scriptable scope){}
>
>
> public String getClassName() {
> return "console";
> }
>
> public static String jsFunction_log(String s){
> return s;
> }
> }
>
> The call to the method "log" works when test.js looks like that:
>
> var c = new Console();
> c.log
>
> I would like to make it work in a "static" way without instantiating the
> console object? How can I do this?
I don't like defineClass... (It implies to write more java where I'd
rather write more js.) Try this:
Java:
package my.pkg;
public class Console {
public static String log(String s){
return s;
}
}
Js:
function log(s) {
return Packages.my.pkg.Console.log(s);
}
Christophe
_______________________________________________
dev-tech-js-engine-rhino mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-tech-js-engine-rhino