是否可以使用 html5 按钮事件运行 bat/可执行文件?如果我没有错的话,在 IE 中它可以使用 Shell 对象实现。
是否可以在 HTML 中的“onclick”上运行 .exe 或 .bat 文件
IT技术
javascript
html
dom
2021-02-04 15:09:01
5个回答
不,那将是一个巨大的安全漏洞。想象一下如果有人能跑
format c:
每当您访问他们的网站时。
这就是我所做的。我想在我们的网络上设置一个 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。
当页面本身通过file:///
路径打开时是可能的。
<button onclick="window.open('file:///C:/Windows/notepad.exe')">
Launch notepad
</button>
然而,当你把它放在网络服务器上的那一刻(即使你通过 访问它http://localhost/
),你会得到一个错误:
错误:拒绝从脚本访问“file:///C:/Windows/notepad.exe”
您可以在带有 OCX 组件的 Internet Explorer 和使用 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
您不能运行/执行位于用户本地计算机或通过站点的 .exe 文件。用户必须先下载exe文件,然后运行可执行文件。
所以没有办法
以下代码仅在用户机器中存在 EXE 时才有效。
<a href = "C:\folder_name\program.exe">