szp*_*pic 26 javascript environment-variables
我需要从客户端操作系统上的环境变量中读取系统时间.我在Stackoverflow上搜索,发现这是不可能的.但是,这些答案是从2010年开始的,我想问一下自那以后是否有任何改变.
是否可以使用某种框架?或Javascript仍然是沙盒并从操作系统切断?
dth*_*ree 16
szpic如果Javascript不是来自操作系统的沙箱,那么任何半智者都可以进入你的计算机并控制它.允许环境变量的程度太低,不允许.
看看你所有的环境变量,并问问自己这个星球上的每个人是否都应该能够访问有关你计算机的所有数据.
如果您想使用Javascript执行此操作,则必须使用特殊的Web浏览器,例如node-webkit.但是,它不会在任何普通的Web浏览器上运行,所以不要指望超过0.0001%的人口期望运行您的页面.
我不知道你的用途,但一个招,在一个环境变量来,就是要建立一个快捷方式到你的Web应用程序,并将其包含在那里作为一个URL参数(至少在Winblows).
http://myapp.com?computername=%COMPUTERNAME%
Run Code Online (Sandbox Code Playgroud)
FWIW ....只是玩一个.HTA文件(是的,使用MSIE'引擎'所以你可能会忘记其他浏览器)以下JavaScript读取%TEMP%路径变量来设置文件路径+名称以安全地写一个临时文件文件.这对我来说没问题:
var oTest = new ActiveXObject("wscript.shell");
pathTest = oTest.ExpandEnvironmentStrings("%TEMP%") + "\\test_it.txt";
oTest = null;
alert(pathTest); // proves we can read %TEMP%
// and create the file, to complete the example
var oFSO = new ActiveXObject("Scripting.FileSystemObject");
var fil = oFSO.CreateTextFile(pathTest, true);
fil.WriteLine("Hello wonderful world!");
fil.Close();
Run Code Online (Sandbox Code Playgroud)
小智 5
今天(在撰写本文时)所有答案都早已过时。:)
当然,JS 仍然是沙盒的,但这并不妨碍任何人在客户端软件中使用环境变量之类的东西。您需要了解并明智地使用是将任何类型的数据从操作系统传输到前端应用程序。
几个前端框架可能会有所帮助。例如,使用@angular/cli创建的 Angular 应用程序为不同环境提供了开箱即用的用例。在应用程序配置文件(例如 angular.json)中,您可以配置选项、变量、值,以及通过例如 webpack传输到前端应用程序中所需的任何内容。它们只能读取一次并且不能在运行时更改。
以下库nwjs.io尝试了一些新东西:它允许您直接从 DOM 调用所有 Node.js 模块。
在对接/docker环境中,对后端和前端软件还有其他期望,并且从操作系统的角度来看,这些环境的配置不同并受到适当的限制。