2010-11-18 148 views
2

我想從我的網頁(HTML)打開cmd窗口。我使用JS,但有些東西不對,因爲當我按下時,函數不會被調用。從瀏覽器運行cmd - 通過JS

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<script type="text/javascript"> 
<!-- 
function runCmd(command, option) 
{ 
    var char34 = String.fromCharCode(34); 
    var wsh = new ActiveXObject('WScript.Shell'); 
    if (wsh) 
    { 
     command = 'cmd /k ' + char34 + wsh.ExpandEnvironmentStrings(command) + ' '; 
     command = command + char34 + wsh.ExpandEnvironmentStrings(option) + char34 + char34; 
     if (confirm(command)) 
     { 
      wsh.Run(command); 
     } 
    } 
} 
//--> 
</script> 
</head> 

<body> 

<input type="button" value="Run!" onclick="runCmd(‘notepad.exe’, ‘%programfiles%\file.txt’);" /> 
</body> 
</html> 

編輯: 我救它作爲PHP現在我有一個錯誤在FF:

ActiveXObject is not defined 
[Break on this error] var wsh = new ActiveXObject('WScript.Shell'); 

謝謝!

+0

在什麼瀏覽器中?您正在使用IE瀏覽器,並且該頁面位於可信網站中,對嗎? (或任何需要IE瀏覽器運行這樣的潛在危險的東西) – 2010-11-18 13:42:32

+0

在IE和FF ...是的,值得信賴的網站。 – Ronny 2010-11-18 13:43:59

+3

而你雖然'eval()'是邪惡的... – 2010-11-18 13:44:30

回答

9

您將不得不基本關閉瀏覽器中的所有安全功能(這需要各種Internet Explorer才能使用ActiveX)。

大多數瀏覽器都不允許這種類型的東西,你能想象一下,如果[隨機的互聯網用戶]能夠通過讓你訪問一個網頁來在你的計算機上運行任何他們想要的東西?

+0

你確定這是問題嗎?我試圖添加'alert(「here」);'在開始處,我沒有看到警報。 – Ronny 2010-11-18 13:48:16

0

根據documents

這個對象是Microsoft擴展,只在互聯網 Explorer中支持...

ActiveXObject只是內部Internet Explorer,只有額外的權限和使用幾個警告信息。你甚至可以考慮到,因爲它暴露了客戶端計算機的幾個安全問題,所以其他瀏覽器都不支持它。