【问题标题】:how to open desktop application using jquery from chrome and Firefox如何使用 chrome 和 Firefox 中的 jquery 打开桌面应用程序
【发布时间】:2018-01-31 07:18:29
【问题描述】:

我想通过我正在使用此代码的 Web 应用程序在桌面上安装应用程序。但仅在 IE 中支持。我想在 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>

【问题讨论】:

  • 我不认为你可以。 JS 在沙盒环境中运行。

标签: javascript jquery html


【解决方案1】:

你不能,至少不能直接。并且有充分的理由。如果网页可以运行任意本地应用程序,它们也可以删除、修改或读取您的本地文件。

另一个答案提到了 Firefox 扩展。但是,这只适用于 Firefox 56 及更高版本。Firefox 57 和更高版本使用限制本地系统访问的 WebExtensions。

您可以创建一个使用Native Messaging 并为网页提供API 的WebExtension。您必须为本地应用程序安装适当的本机端点。无法沿 WebExtension 安装本机端点。

您的通信看起来有点像这样:

Web page <-1-> WebExtension <-2-> Native Messaging Host <-> Local Application 1: postMessage()/onMessage 2: Native Messaging

【讨论】:

    【解决方案2】:

    由于沙盒禁止使用本地资源,因此您无法从 Chrome 或 Firefox 执行此操作。

    我找到的唯一解决方案是在 Mozilla Firefox 中构建一个可以启动您的应用程序的扩展程序。扩展位于沙箱之外,因此它们可以执行本地资源。请参阅此页面以了解如何执行此操作。您也许可以使用 crossrider 跨浏览器进行操作,尽管我还没有成功。

    您也可以构建一个从网络填充的胖客户端 服务,并通过扩展从浏览器启动 上文提到的。这就是我正在做的绕过沙盒。我是 为此使用本地 XUL。

    来源:Similar question "how to start up a desktop application in client side "

    【讨论】:

    • XUL 已弃用,基于 XUL 的插件仅适用于 Firefox
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2021-05-05
    • 2020-06-23
    • 2012-09-25
    • 2015-01-02
    • 1970-01-01
    相关资源
    最近更新 更多