我有几个JS文件,所以不是在控制台窗口(Firefox和Chromium)中复制和粘贴每个文件,如果可能的话,我想从shell调用它们.
每个JS文件都有测试函数,使用console.log显示它们是否正确.
对于调试和测试,我正在搜索具有自动完成功能的JavaScript shell,如果可能的话,还会搜索对象内省(如ipython).在线JavaScript Shell非常好,但我正在寻找一些本地的东西,而不需要浏览器.
到目前为止,我已经测试了独立的JavaScript解释器rhino,spidermonkey和google V8.但他们都没有完成.至少带有jline和spidermonkey的Rhino通过键向上/向下具有某种命令历史,但仅此而已.
有什么建议?
这个问题在这里再次被问到.它可能包含您正在寻找的答案.
使用.NET,我可以编写一个托管脚本引擎的应用程序,该脚本引擎符合Microsoft的IActiveScript约定.这包括来自Microsoft的JScript和VBScript,以及PerlScript和RubyScript,我不知道第三方还有什么.
在代码中执行此操作的方法是这样的:
Type engine = Type.GetTypeFromProgID(progId, true);
_engine = Activator.CreateInstance(engine) as IActiveScript;
Run Code Online (Sandbox Code Playgroud)
其中progId可以采用Javascript,JScript,ECMAScript,VBScript等值.运行cscript.exe时可以执行类似的操作,在命令行中使用该//E选项指定progId .例如,这个命令:
cscript.exe <file> //e:JScript
Run Code Online (Sandbox Code Playgroud)
..将通过JScript引擎运行指定的文件,无论其扩展名如何.
在我的机器上,如果我查看HKLM\SW\Classes\,三个progIds {Javascript,JScript,ECMAScript}都指向相同的CLSID,我猜这是JScript 5.8脚本引擎:{f414c260-6ac0-11cf-b6d1-00aa00bbbb58}
是否有ProgId或CLSID我可以指定运行IE9的Javascript引擎,又称"Chakra"?
IE9的引擎是否仍然被IActiveScript加载?
Microsoft的文档表明它确实如此,但没有指定ProgId或CLSID.
我知道,出于安全原因,Javascript无法在文件系统中写入数据.我经常读到,用Javascript本地保存数据的唯一方法是使用cookies或localStorage.
但它是可能的,在非常特殊的情况下,当文件被访问本地(通过互联网而不是),将数据写入本地?(没有任何服务器语言,甚至根本没有任何服务器......只是本地浏览HTML文件)
... HTML文件被新内容覆盖了吗?(即按下SAVE时应更新本地 HTML文件).

感谢Javascript,当本地访问HTML页面时,这可以保存文件吗?
注意:我希望能够以静默方式保存,而不是建议下载/保存对话框,用户必须在其中选择下载位置,然后"确定要覆盖"等.
编辑:为什么这个问题?我希望能够做一个HTML/JS记事本,我可以在没有任何服务器的情况下在本地运行(没有apache,没有php).我需要能够轻松保存,而无需处理对话框"你想在哪里下载文件?".
我想为Knockout JS实现一个不同的非HTML DOM后端,可能在非浏览器类型的环境中(可能是Node.js).具体来说,存在一个旧的,简单的静态UI框架,我想用DOM包装然后与Knockout一起使用.我知道Knockout本身至少能够在没有浏览器环境的情况下在Node.js中运行(例如参见这里),但我想知道我需要实现什么来创建一个完全不同的DOM.
我只想弄清楚我是否在工作范围方面疯狂或完全疯狂.
我在浏览器中运行了几个小小部件,只是基本的JavaScript和HTML.它们是具有空白背景和CPU使用率之类的小工具,而且只是像这样的小玩具.
我最初开发这些工具作为网站视图的组件在网页上生活.有没有办法可以将这些内容带到浏览器之外,例如Chrome,只是让我的CPU使用率覆盖我的桌面,这样我仍然可以看到它背后的东西,例如电影正在播放或玩视频游戏?甚至可能启动一个只运行AS A DESKTOP应用程序的javascript程序?
只要我可以在桌面上安装此应用程序或作为独立的Node.js应用程序运行,依赖浏览器就可以了.这是怎么做到的?我最近听说像Discord这样的桌面应用程序通过语音通信做了很多这样的事情并且在游戏中有覆盖.
我正在研究一些需要解析包含HTML片段的文件的代码.似乎jQuery对此非常有用,但是当我尝试将jQuery加载到WScript或CScript之类的东西时,由于jQuery对窗口对象的许多引用,它会抛出错误.
在没有浏览器的情况下运行的代码中使用jQuery有什么实用的方法?
更新:为了回应这些评论,我已经成功编写了JavaScript代码来读取文件的内容new ActiveXObject('Scripting.FileSystemObject');.我知道ActiveX是邪恶的,但这只是一个内部项目,用于从包含HTML片段的某些文件中获取一些数据并进入适当的数据库.
另一个更新:到目前为止我的代码看起来像这样:
var fileIo, here;
fileIo = new ActiveXObject('Scripting.FileSystemObject');
here = unescape(fileIo.GetParentFolderName(WScript.ScriptFullName) + "\\");
(function() {
var files, thisFile, thisFileName, thisFileText;
for (files = new Enumerator(fileIo.GetFolder(here).files); !files.atEnd(); files.moveNext()) {
thisFileName = files.item().Name;
thisFile = fileIo.OpenTextFile(here + thisFileName);
thisFileText = thisFile.ReadAll();
// I want to do something like this:
s = $(thisFileText).find('input#txtFoo').val();
}
})();
Run Code Online (Sandbox Code Playgroud)
更新:我也在jQuery论坛上发布了这个问题:http://forum.jquery.com/topic/how-to-use-jquery-without-a-browser#14737000003719577
有没有办法编写和运行JavaScript代码,而无需运行浏览器并使用其JavaScript引擎?
谢谢!