标签: rhino

服务器端Javascript最佳实践?

我们有一个基于Java的CMS,它有服务器端JS的Mozilla Rhino.目前JS代码库很小但正在增长.在为时已晚并且代码变得非常混乱之前,我想介绍一些最佳实践和编码风格.

显然,名称空间控制非常重要.但其他最佳实践如何 - 尤其是Java程序员?

javascript coding-style rhino serverside-javascript

7
推荐指数
1
解决办法
1528
查看次数

javax.script提供的JavaScript中提供的Rhino load()函数?

为Rhino的shell开发的一些JavaScript文件使用load()来加载其他JavaScript文件.我正在尝试使用javax.script从这些Rhino JavaScript文件中嵌入一些功能.不幸的是,javax.script的JavaScript没有实现load()函数.尝试eval()包含load()的脚本时,会发生以下错误:

com.sun.script.javascript.RhinoScriptEngine:-1:in `eval': javax.script.ScriptException: sun.org.mozilla.javascript.internal.EcmaError: ReferenceError: "load" is  not defined.
Run Code Online (Sandbox Code Playgroud)

从Java程序(而不是shell)中评估JavaScript文件时,javax.script是否为load()函数提供了一个?

javascript load rhino javax.script

7
推荐指数
1
解决办法
3460
查看次数

在javascript Eclipse中配置rhino

我想在Eclipse中调试我的js代码.如何在Eclipse中设置Mozilla rhino ...(一步一步指导.

javascript eclipse mozilla rhino

7
推荐指数
1
解决办法
1982
查看次数

如何使JSON.stringify在NativeJavaArray上工作?

我有一个在NetSuite平台上运行的脚本,我99%肯定使用的是Rhino JavaScript引擎.我正在尝试使用相同的脚本在本地工作,但调用JSON.stringify包装的Java数组时出现问题.在这两种环境中,数组都是类型[object JavaArray],但是当在NetSuite上正确地对Java数组进行字符串化时,我的本地Rhino上下文说:

org.mozilla.javascript.EvaluatorException:Java类"[Ljava.lang.String;" 没有名为"toJSON"的公共实例字段或方法.

起初我以为他们NativeJavaArray用一个toJSON方法扩充了类并通过自定义返回它WrapFactory,但事实并非如此,因为toJSON返回的对象上没有方法.

是否有一个选项需要调整以使Java数组与JSON方法一起使用?我应该能够通过添加toJSONNativeJavaArray我上面提到的子类来解决它,但我希望尽可能与NetSuite的环境兼容.

javascript java arrays json rhino

7
推荐指数
0
解决办法
897
查看次数

如何在 Android 上使用 citeproc-java

我正在调查de.undercouch:citeproc-java:2.0.0我当前的 Android 应用程序。

我无法确定ScriptEngine适用于 Android 的citeproc-java.

我的 Gradle 类似于:-

ext {
    compileSdkVersion = 30
    minSdkVersion = 26
    targetSdkVersion = 30
}

dependencies {

    implementation 'io.apisense:rhino-android:1.1.1'

    implementation 'de.undercouch:citeproc-java:2.0.0'
    implementation 'org.citationstyles:styles:20.11'
    implementation 'org.citationstyles:locales:20.11'

    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation 'com.google.android.material:material:1.2.1'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.4.10"
}
Run Code Online (Sandbox Code Playgroud)

Citeproc要求javax.script.ScriptEngineManager在 Android 平台上不可用,因此我已替换io.apisense:rhino-android:1.1.1

我现在正面临这个例外......

2020-11-19 10:02:22.325 4426-4426/com.google.android.gms.location.sample.basiclocationsample E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.google.android.gms.location.sample.basiclocationsample, PID: 4426
    java.lang.RuntimeException: Unable to start activity ComponentInfo{----}: java.lang.IllegalArgumentException: Could not make bibliography
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3270)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) …
Run Code Online (Sandbox Code Playgroud)

android rhino citeproc-js

7
推荐指数
1
解决办法
117
查看次数

如何在运行时将rhino/javascript文件编译为.class字节码

我正在用Java 制作一个落砂游戏.我希望用户能够使用更简单的语言为它编写自己的引擎.落砂游戏可能会占用大量CPU资源,因此我希望尽可能快地运行引擎,而无需手动编译.

我需要知道如何在运行时将rhino javascript文件编译为.class文件以供使用.

我已经寻找了一种方法但除了使用命令行手动编译之外找不到任何其他方法,我不希望用户必须这样做.

javascript java runtime compilation rhino

6
推荐指数
1
解决办法
8940
查看次数

使用Javascript将HTML字符串加载到DOM树中

我目前正在使用一个自动化框架,它将网页拉下来进行分析,然后将其显示为一个字符串进行处理.Rhino Javascript引擎可用于帮助解析返回的网页.

似乎如果字符串(它是一个完整的网页)可以加载到DOM表示中,它将为解析和分析内容提供一个非常好的界面.

仅使用Javascript,这是一个可能和/或可行的概念吗?

编辑:

我将分解问题以澄清:说我在javascript中有一个包含html的字符串,如:


var $mywebpage = '<!DOCTYPE HTML PUB ...//snipped//... </body></html>';

将它以某种方式加载到dom对象中是否可行/现实?

javascript dom rhino web-crawler web-scraping

6
推荐指数
1
解决办法
6188
查看次数

在Rhino中访问java Maps&Lists作为JavaScript对象

有没有办法在Rhino中访问Java Maps和Lists作为JavaScript对象?

我有一个Map只包含其他地图和基元和字符串列表,我想将它传递给Rhino脚本并对其进行处理,然后将修改后的对象返回给Java - 但由于它们是java.util .Map和java.util.List对象,我不能使用标准的JavaScript关联数组语法.即:fooMap.get("keyName")将工作,但fooMap.keyNamefooMap["keyName"]不会.

我不知道是否有特定于Rhino的方法来执行此操作,或者是否有一些转换/强制转换实用程序可以提供帮助.Commons BeanUtils是不够的,因为要将Map转换为bean(可以通过关联数组语法访问),首先必须创建一个包含所有命名mutator/accessors的类.我不会在运行时知道对象的结构.

java json rhino

6
推荐指数
1
解决办法
9251
查看次数

拦截Rhino中java对象的字段访问

是否可以在执行的JavaScript代码中拦截Java对象的字段(和方法)访问?就像JSCocoa中的委托允许处理属性和方法访问一样.

javascript java rhino

6
推荐指数
1
解决办法
1367
查看次数

如何从命令行正确执行lessc-rhino-1.6.3.js

我正在尝试"最新和最好的"LESS版本,它似乎在rhino命令行版本中不起作用.我做了以下

  1. 从这里获取最新的犀牛https://github.com/downloads/mozilla/rhino/rhino1_7R4.zip
  2. 从这里获取最新的less-rhino-1.6.3.js https://github.com/less/less.js/tree/master/dist
  3. 从命令行运行以下命令

    java -jar js.jar less-rhino-1.6.3.js text.less text.css
    要么
    java -jar js.jar less-rhino-1.6.3.js lessc-rhino-1.6.3.js text.less text.css

结果是 - "默默地没有".当试图运行'以前的最新版本'时 - 它运行正常没有问题

java -jar js.jar less-rhino-1.5.1.js text.less text.css

输出是

Written to text.css

关于最新的less-rhino.js我缺少什么?我在http://lesscss.orghttps://github.com/less/less.js中找不到相关的帮助.后来的jut说:"stackoverflow.com是一个获得Less的答案的好地方."

javascript rhino less

6
推荐指数
1
解决办法
1536
查看次数