37

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

4

5 回答 5

38

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

format c:

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

于 2013-09-24T12:01:37.193 回答
23

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

于 2014-01-31T16:14:45.610 回答
18

当页面本身通过file:///路径打开时,这是可能的。

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

然而,当你把它放到网络服务器上时(即使你通过 访问它http://localhost/),你会得到一个错误:

错误:从脚本访问“file:///C:/Windows/notepad.exe”被拒绝

于 2013-09-24T12:03:43.363 回答
5

您可以在 Internet Explorer 上使用 OCX 组件和在 chrome 浏览器上使用 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
于 2015-04-30T21:30:45.343 回答
1

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

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

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

于 2013-09-24T12:15:41.840 回答