我想通过Web应用程序在桌面上安装应用程序我正在使用此代码。但只支持IE.i想在firefox或Chrome中打开它
<html>
<head>
<title>Application Executer</title>
<HTA:APPLICATION ID="oMyApp" APPLICATIONNAME="Application Executer" BORDER="no" CAPTION="no" SHOWINTASKBAR="yes" SINGLEINSTANCE="yes" SYSMENU="yes" SCROLL="no" WINDOWSTATE="normal">
<script type="text/javascript" language="javascript">
function RunFile()
{
WshShell = new ActiveXObject("WScript.Shell");
//call file
WshShell.Run("C:/MathType.exe", 1, false);
}
</script>
</head>
<body>
<input type="button" value="Run Notepad" onclick="RunFile();"/>
</body>
</html>
答案 0 :(得分:2)
你不能,至少不是直接的。并且有充分的理由。如果网页可以运行任意本地应用程序,它们也可以删除,修改或读取本地文件。
另一个答案提到了Firefox扩展。但是,这仅适用于最高版本为56的Firefox.Firefox 57和更新版本使用的WebExtensions在本地系统访问方面受到限制。
您可以创建一个使用Native Messaging的WebExtension,并为网页提供API。您必须为本地应用程序安装适当的本机端点。无法沿WebExtension安装此本机端点。
您的沟通看起来有点像这样:
Web page <-1-> WebExtension <-2-> Native Messaging Host <-> Local Application
1: postMessage()/onMessage
2: Native Messaging
答案 1 :(得分:1)
由于禁止使用本地资源的沙箱,您无法通过Chrome或Firefox执行此操作。
我发现的唯一解决方案是在Mozilla Firefox中构建一个可以启动应用的扩展程序。扩展程序位于沙箱之外,因此可以执行本地资源。请参阅此页面了解如何执行此操作。您可以使用crossrider进行跨浏览器操作,但我还没有成功。
您也可以构建一个从Web填充的胖客户端 服务,并通过扩展名从浏览器启动 上文提到的。这就是我为了绕过沙箱而做的事情。我&#39;米 使用本地XUL。
来源:Similar question "how to start up a desktop application in client side "