JavaScript:document.write()无法在Mac终端中运行

时间:2012-12-18 03:21:37

标签: javascript parsing serverside-javascript

我正在尝试从一些服务器脚本中包含一些库,这些脚本是我从Mac终端(命令行)运行的。这不会在浏览器中运行 - 我正在使用Parse Cloud Code作为我的iOS应用程序的后端。任何想法为什么以下代码不起作用,而它确实在谷歌浏览器中工作?

document.write('<script src="http://code.jquery.com/jquery-1.8.3.min.js" type="text/javascript"></script>');
document.write('<script src="https://raw.github.com/carlo/jquery-base64/master/ jquery.base64.min.js" type="text/javascript"></script>');
document.write('<script src="http://crypto-js.googlecode.com/svn/tags/3.0.2/build/rollups/hmac-sha1.js" type="text/javascript"></script>');

从终端运行此命令会出现错误:{“code”:141,“error”:“未捕获的ReferenceError:文档未定义”}。

1 个答案:

答案 0 :(得分:0)

服务器端Javascript通常没有document。这是因为没有创建DOM,这就是你得到错误的原因(Uncaught ReferenceError: document is not defined)。

此外,通常,script标签不会用于加载javascript文件(没有DOM)。

Node.js使用require模块接口来请求模块(这也意味着模块不会在全局空间中使用;例如浏览器中的windowprocess in Node.js的)。不幸的是,许多客户端javascript库将无法在服务器端工作(这是jQuery的情况,因为它用于操作不存在服务器端的DOM)。

在节点中,有cheerio基本上在服务器上实现jQuery语法以生成DOM字符串。但在您的情况下,我宁愿寻找适合您环境的特定库。

Enaway ,在您澄清了一点问题之后。我想你有一个答案,为什么你得到document not defined错误(你没有在浏览器中工作,因此你没有DOM)。从那里,你真的需要阅读Cloud Code Guide文档,看看他们的环境是如何工作的;但肯定的是,并不是因为它说它使用了javascript,你可以将浏览器的工作方式转换为服务器。

祝你好运。