Javascript 是否可以在';上运行.exe或.bat文件;onclick';在HTML中

Javascript 是否可以在';上运行.exe或.bat文件;onclick';在HTML中,javascript,html,dom,Javascript,Html,Dom,是否可以使用html5按钮事件运行bat/可执行文件?在IE中,如果我没有错的话,使用Shell对象是可以实现的。不,那将是一个巨大的安全漏洞。想象一下如果有人能跑 format c: 每当您访问他们的网站时。通过文件://路径打开页面本身是可能的 <button onclick="window.open('file:///C:/Windows/notepad.exe')"> Launch notepad </button> 启动记事本 但是,当您将其放到

是否可以使用html5按钮事件运行bat/可执行文件?在IE中,如果我没有错的话,使用Shell对象是可以实现的。

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

format c:

每当您访问他们的网站时。

通过
文件://
路径打开页面本身是可能的

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

启动记事本
但是,当您将其放到Web服务器上时(即使您通过
http://localhost/
),您将得到一个错误:

错误:访问'file:///C:/Windows/notepad.exe“来自脚本的消息被拒绝


无法运行/执行用户本地计算机中或通过站点的.exe文件。用户必须先下载exe文件,然后运行可执行文件。
因此没有可能的方法

以下代码仅在用户计算机中存在EXE时有效


以下是我所做的。我想在我们的网络上设置一个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中运行。

您可以在带有OCX组件的Internet explorer和使用Chrome扩展的Chrome浏览器上运行 在任何情况下,都需要在客户端系统上进行其他设置

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

查看此链接@coolprarun我还确认您提供的链接在我的环境中有效(
Win8.1
IE11
。不在
FF27
)。您应该将其作为答案发布。+1我刚刚确认这在IE11上有效,但在Win8.1上的Firefox 27上无效。@IsaacS我没有访问Windows 8框的权限,因此很遗憾,我无法对此提供帮助。我刚刚在Windows 7上用Firefox 28再次尝试了这一点,它可以工作,因此额外的安全性可能仅限于Windows 8。这允许“下载”notepad.exe,而不是运行它。Firefox31,Windows7@nodiscc实际上,Firefox默认情况下不允许您运行可执行文件,但是有一个扩展名允许您这样做并不少见。@Stijn在这种情况下执行的文件是您刚刚“下载”的文件,而不是原始文件。因此,在大多数情况下,它不起作用-它不允许您运行已经安装在您机器上的程序。亲爱的@coolprarun如果我在用户机器中有一个bat文件,我如何使用javascript或其他东西在chrome中运行bat文件?我可以通过ActiveXObject在IE浏览器中完成,但是这个对象不适用于chrome。亲爱的@Chuff如果bat文件有注册命令,我的意思是像
REG添加“HKCU\Software\…”
这样的东西在Firefox、Edge和chrome中都不起作用了!只有IE才有效。有没有在Edge或Firefox中运行bat的解决方案???