Javascript 是否可以在';上运行.exe或.bat文件;onclick';在HTML中
是否可以使用html5按钮事件运行bat/可执行文件?在IE中,如果我没有错的话,使用Shell对象是可以实现的。不,那将是一个巨大的安全漏洞。想象一下如果有人能跑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> 启动记事本 但是,当您将其放到
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的解决方案???