Con*_*ure 53 html javascript username
我想知道如何在JavaScript中获取当前用户的名称作为HTML文档的一部分.
在Java中,可以键入System.getProperty("user.name");
以实现此目的.在JavaScript中有什么替代方案?
Sur*_*ams 79
JavaScript在当前HTML文档的上下文中运行,因此它无法确定当前用户的任何内容,除非它位于当前页面中,或者您对服务器端脚本执行AJAX调用以获取更多信息.
JavaScript将无法确定您的Windows用户名.
Gre*_*reg 33
JavaScript中没有完全兼容的替代方案,因为它具有不安全的安全问题,允许客户端代码了解登录用户.
也就是说,以下代码将允许您获取登录的用户名,但它只能在Windows上运行,并且只能在Internet Explorer中使用,因为它使用了ActiveX.此外,Internet Explorer很可能会显示一个弹出窗口,提醒您注意与使用此代码相关的潜在安全问题,这不会完全有助于提高可用性.
<!doctype html>
<html>
<head>
<title>Windows Username</title>
</head>
<body>
<script type="text/javascript">
var WinNetwork = new ActiveXObject("WScript.Network");
alert(WinNetwork.UserName);
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
正如Surreal Dreams建议您可以使用AJAX调用服务器端方法来回退用户名,或者使用带有登录用户值的隐藏输入来呈现HTML,例如
(ASP.NET MVC 3语法)
<input id="username" type="hidden" value="@User.Identity.Name" />
Run Code Online (Sandbox Code Playgroud)
Dag*_*bit 11
如果脚本在HTA或类似的Microsoft Windows上运行,则可以执行以下操作:
var wshshell=new ActiveXObject("wscript.shell");
var username=wshshell.ExpandEnvironmentStrings("%username%");
Run Code Online (Sandbox Code Playgroud)
否则,正如其他人所指出的那样,你运气不好.这被认为是私人信息,并且浏览器不向javascript引擎提供.