我在Java中使用javax.script,我希望能够检测当前的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);
}
}
最佳答案
啊,我们已经在您的评论中看到了。只需使用特征检测即可:
var writeMessage = document && document.write
? document.write.bind(document)
: print;
然后在整个脚本中使用writeMessage(string)
。这是short form的
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);
}
}
关于java - 判断当前Javascript实现是否是Rhino,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11818833/