Java環境下調Js方法

參考:http://blog.csdn.net/szwangdf/article/details/25376415
1,首先下載jar:http://www.mozilla.org/rhino/
2,例子:
    public String runScript(String js, String functionName, Object[] functionParams) {
        Context rhino = Context.enter();
        rhino.setOptimizationLevel(-1);
        try {
            Scriptable scope = rhino.initStandardObjects();

            ScriptableObject.putProperty(scope, "javaContext", Context.javaToJS(UserInfoSetFrag.this, scope));
            ScriptableObject.putProperty(scope, "javaLoader", Context.javaToJS(UserInfoSetFrag.class.getClassLoader(), scope));

            rhino.evaluateString(scope, js, "UserInfoSetFrag", 1, null);

            Function function = (Function) scope.get(functionName, scope);

            Object result = function.call(rhino, scope, scope, functionParams);
            if (result instanceof String) {
                return (String) result;
            } else if (result instanceof NativeJavaObject) {
                return (String) ((NativeJavaObject) result).getDefaultValue(String.class);
            } else if (result instanceof NativeObject) {
                return (String) ((NativeObject) result).getDefaultValue(String.class);
            }
            return result.toString();
        } finally {
            Context.exit();
        }
    }


    //matchStr是一個字符串,js方法代碼字符串
    String result = runScript("vara=\"" + matchStr + "\";eval_r(decodeURI(a));", "ruleOfStudent", new Object[]{text, grade, false});
    if("false".equals(result))
    {
        showOtherCheckerDialog();
        return false;
    }


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章