2013-09-24 102 views
26

可以使用html5按钮事件运行bat/executable文件吗?在IE中,如果我没有错,可以使用Shell对象实现。是否可以在HTML中的'onclick'上运行.exe或.bat文件

+1

请参阅此链接[如何使用执行本地文件HTML Application?](http://www.codeproject.com/Articles/113678/How-to-execute-a-Local-File-using-HTML-Application) – coolprarun

+0

@coolprarun我也确认你提供的链接适用于我的环境('Win8.1','IE11')。不在'FF27'上)。你应该把它作为答案。 – IsaacS

回答

18

这里就是我所做的。我想要在我们的网络上设置HTML页面,所以我不必导航到各种文件夹来安装或升级我们的应用程序。所以我所做的就是建立在我们的“共享”一个.bat文件驱动,每个人都可以访问,在.bat文件我有这样的代码:

start /d "\\server\Software\" setup.exe 

的HTML代码为:

<input type="button" value="Launch Installer" onclick="window.open('file:///S:Test/Test.bat')" /> 

(确保你的斜杠是正确的,我有他们的另一种方式,它不工作)

我更喜欢直接启动EXE,但这是不可能的,但.bat文件让我在附近。希望它在FF或Chrome中工作,但只有IE。

+0

亲爱的@Chuff如果bat文件有一个注册命令,我的意思是...... REG ADD“HKCU \ Software \ ...” –

25

不,这将是一个巨大的安全漏洞。想象一下,如果有人可以跑

format c: 

每当你浏览他们的网站。

+0

这是正确的,但我在同一时间笑...:D – aswzen

18

当页面本身通过file:///路径打开时,可能会发生这种情况。

<button onclick="window.open('file:///C:/Windows/notepad.exe')"> 
    Launch notepad 
</button> 

但是,你把它放在一个网络服务器(即使你通过http://localhost/访问)的那一刻,你会得到一个错误:

Error: Access to 'file:///C:/Windows/notepad.exe' from script denied

+0

+1我刚刚证实,这适用于IE11,但不适用于Win8.1上的Firefox 27。 – IsaacS

+1

@IsaacS我无法访问Windows 8盒子,所以不幸的是我无法提供帮助。我刚刚在Windows 7上使用Firefox 28再次尝试这种方式,并且它可以正常工作,因此额外的安全性可能仅限于Windows 8。 – Stijn

+2

这允许“下载”notepad.exe,而不是运行它。 Firefox 31,Windows 7 – nodiscc

1

不能运行/执行.exe文件即在用户本地机器或通过站点。用户必须先下载exe文件,然后运行可执行文件。
所以没有办法

下面的代码只有当EXE出现在用户的机器中时才起作用。

<a href = "C:\folder_name\program.exe">

+0

亲爱的@coolprarun如果我在用户的机器上有一个bat文件,我如何使用javascript或者其他的方式在Chrome中运行bat文件?我可以通过ActiveXObject在IE浏览器中完成,但是这个对象不适用于chrome。 –

4

您可以OCX组件和chrome浏览器使用的是Chrome扩展在任何情况下 chrome document 做在Internet Explorer需要在客户端系统上的其他设置!

Chrome扩展源的重要组成部分:

var port = chrome.runtime.connectNative("your.app.id"); 
     port.onMessage.addListener(onNativeMessage); 
     port.onDisconnect.addListener(onDisconnected); 
     port.postMessage("send some data to STDIO"); 

许可文件:

{ 
     "name": "your.app.id", 
     "description": "Name of your extension", 
     "path": "myapp.exe", 
     "type": "stdio", 
     "allowed_origins": [ 
      "chrome-extension://IDOFYOUREXTENSION_lokldaeplkmh/" 
     ] 
} 

和Windows注册表设置:

HKEY_CURRENT_USER\Software\Google\Chrome\NativeMessagingHosts\your.app.id 
REG_EXPAND_SZ : c:\permissionsettings.json 
相关问题