2010-06-03 29 views
25

我正在使用Firefox附加組件(用JavaScript編寫),需要確定當前登錄的Windows用戶。有沒有辦法做到這一點?獲取Windows用戶名(不是WebExtensions)Firefox插件

+0

這是一個安全隱患,這就是爲什麼它沒有在JavaScript曝光。你想做什麼? – 2010-06-03 18:41:17

+0

我正在爲公司建立內部擴展,並需要查看哪個用戶請求哪個文檔。 – cwhiii 2010-06-03 19:02:10

+0

@duskwuff,爲什麼碰到一個7歲的問題只是爲了編輯?你所做的只是用標題中的另一個標籤替換標題中的一個標籤。標籤已經明確表示這是關於Firefox附加組件的。沒有必要編輯這個來做出改變。事實上,如果你想要得到迂腐,我們不應該在標題中包含非整體標籤,所以「獲取Windows用戶名」會更合適。你是否建議我們總是在所有標題中添加標籤? – Makyen 2017-10-07 05:54:24

回答

5

您可以使用nsIEnvironment接口獲取USERNAME environmnet變量。

+2

是否有一個IE瀏覽器等同於此,在通過獲取用戶名的過程中不會給ActiveX所做的麻煩(用戶被告知存在安全風險等)? – pythonian29033 2013-08-08 09:16:47

-2
<html> 
<head> 
    <script language="javascript"> 
     function GetUserName() 
     { 
      var wshell = new ActiveXObject("WScript.Shell"); 
      alert(wshell.ExpandEnvironmentStrings("%USERNAME%")); 
     } 
    </script> 
</head> 
<body OnLoad="GetUserName();"> 
</body> 
</html> 
+8

ActiveX在Firefox中不能正常工作。 – sdwilsh 2010-06-04 00:57:31

9

這確實在Windows的伎倆:

function getUser() { 
    return Components.classes["@mozilla.org/process/environment;1"].getService(Components.interfaces.nsIEnvironment).get('USERNAME'); 
}  
+1

這個解決方案給了我這個錯誤'TypeError:Components.classes是undefined',你認爲這個錯誤的解決方案是什麼? – Scar 2012-10-08 13:22:07

+0

這不適用於Firefox,因爲原始問題在問。 – Monkpit 2015-01-13 20:05:42

+0

@Scar:據我瞭解[這Stackoverflow後](http://stackoverflow.com/questions/21378058/why-components-classes-is-undefined),你不能使用Components.classes中定期的網頁。這意味着用於Firefox擴展/插件。 – Stephanie 2015-03-12 13:09:50

3

下面的代碼對我的作品,而不是onload事件與函數調用:

var objUserInfo = new ActiveXObject("WScript.network"); 
document.write(objUserInfo.ComputerName+"<br>"); 
document.write(objUserInfo.UserDomain+"<br>"); 
document.write(objUserInfo.UserName+"<br>"); 
var uname = objUserInfo.UserName; 
alert(uname); 
+7

提問者使用* firefox *。這個答案使用M $ ActiveX!它不會工作(我不相信我真的測試過它,但我做到了)。實際上Firefox有一個ActiveX插件(幾年前,在FF2的時代),但ActiveX現在在Mozilla的阻止列表中。 ([源(http://kb.mozillazine.org/ActiveX))。 – GitaarLAB 2013-04-06 17:37:14

+0

經過測試,但此代碼只能在Internet Explorer中運行,並且不能在Firefox中運行。最好的選擇是創建一個隱藏的控件/文本框來保存代碼後面給出的值(服務器端),使用javascript獲取您需要的值。考慮到目前的趨勢,並非所有人都使用IE來完成他們的工作。 – mutanic 2013-07-03 03:17:30

+0

10代表向我們展示有額外選擇的麻煩 – pythonian29033 2013-08-08 09:12:25

相關問題