有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java确定当前Javascript实现是否为Rhino

我正在使用javax。我希望能够检测当前的Javascript实现是否是Rhino。我这样做是因为我需要编写脚本,以便在网页上以及Rhino中正常工作

Javascript伪代码:

function writeMessage(message) {
    if (implementation is Rhino) {
        print(message);
    }
    else if (script is running in a web browser) {
        document.write(message);
    }
}

共 (2) 个答案

  1. # 1 楼答案

    啊,我们在你的评论中看到了。只需使用功能检测:

    var writeMessage = document && document.write
      ? document.write.bind(document)
      : print;
    

    然后在脚本中使用writeMessage(string)。这是一个

    if (document && document.write)
        var writeMessage = function(message) { document.write(message); };
    else
        var writeMessage = function(message) { print(message); };
    

    这比你在问题中提出的更好,每次调用函数时都会应用检测:

    function writeMessage(message) {
        if (document && document.write) { // running in a web browser
            document.write(message);
        } else { // it will be Rhino
            print(message);
        }
    }
    
  2. # 2 楼答案

    如果它只能在网络浏览器或Rhino上运行,那么它们肯定是相互排斥的;也就是说,如果脚本不是在浏览器中运行,那么它是通过Rhino运行的