bar*_*red 6 javascript java javax.script
我可以这样做,如果是这样,怎么样?
var window = {}
var document = {}
Run Code Online (Sandbox Code Playgroud)
...当然,除非用脚本试图访问的属性填充它们,否则它们不会有很多好处.
您不能只使用标准浏览器API填充它们 - 大多数API在浏览器的上下文之外没有意义.
窗口和文档对象仅由Web浏览器提供,并不是Rhino实现的ECMAScript标准的一部分.它们允许脚本访问当前浏览器窗口和HTML文档.文档对象实际上是W3C DOM的实现.
Rhino是ECMAScript/JavaScript 1.7的纯实现,因此一般不了解HTML页面,窗口和浏览器.它是一种通用脚本语言,恰好大部分嵌入到Web浏览器中,因此您通常可以使用浏览器提供的全局对象.
您当然可以使用名称"window"和"document"定义一些全局可访问的对象,这些对象只是不执行任何操作的存根,但是您要执行的脚本可能会对它们使用某些方法和/或属性,因此这不会帮助你.如果要执行为在浏览器环境中执行而编写的脚本,则需要提供完全"类似浏览器"的环境.
如果可能并且在服务器环境中有意义则是另一个问题......