如何使用chrome和Firefox中的jquery打开桌面应用程序

时间:2018-01-31 07:18:30

标签: javascript jquery html

我想通过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>

2 个答案:

答案 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 "