Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Javascript打开Microsoft Word实例_Javascript_C#_Jquery - Fatal编程技术网

从Javascript打开Microsoft Word实例

从Javascript打开Microsoft Word实例,javascript,c#,jquery,Javascript,C#,Jquery,我正在构建一个应用程序,允许用户通过网页打开word文档。此web应用程序将使用计算机上的本地word实例打开word文档 我有两个可行的解决方案 使用ActiveX(仅在IE上) 由于该应用程序是intranet应用程序,所以我在web服务中使用它在远程机器上远程打开word实例 第二个架构是我现在所遵循的。它基于通过Javascript/jquery调用接收机器名称的Web服务。稍后在web方法中,我将使用PsTools在远程计算机上远程执行MS Word实例 这两种架构都可以工作,但都有局

我正在构建一个应用程序,允许用户通过网页打开word文档。此web应用程序将使用计算机上的本地word实例打开word文档

我有两个可行的解决方案

  • 使用ActiveX(仅在IE上)
  • 由于该应用程序是intranet应用程序,所以我在web服务中使用它在远程机器上远程打开word实例 第二个架构是我现在所遵循的。它基于通过Javascript/jquery调用接收机器名称的Web服务。稍后在web方法中,我将使用PsTools在远程计算机上远程执行MS Word实例

    这两种架构都可以工作,但都有局限性。有了ActiveX,我可以在IE上使用它,它还需要更改网络策略以允许使用ActiveX。使用PsTools,它工作得很好,但我无法获得
    Word.Exe的路径,我只能假设它始终位于
    \\machinename\C$\Program Files(x86)\..

    我们可能也会将此应用程序公开,在这种情况下,我们使用PsTools的解决方案将不再有效

    我只是想知道是否有其他更合适的/跨浏览器的方式通过web应用程序打开本地word实例?

    必须在远程位置修改文档,其中一个选项是让用户下载文档,然后修改文档并将其上载到服务器,这是毫无疑问的,因为我们正在替换一个厚客户端,并且希望在您说“我们也可以公开此应用程序”时保持用户体验不变,你在说什么样的音阶?只是团队中的几个人,或者作为一个真正的web应用程序,需要处理编辑冲突、事务、锁定、性能等。?即使是您提到的intranet解决方案,只要有2-3个人开始编辑同一文档,也可能会让人头疼

    对于这种类型的文档共享,您基本上有两种选择:

  • 在行为类似于MS Word的富web UI上进行了大量投资,后端服务将信息存储在可扩展的数据存储中,并提供同步编辑和文档下载,或
  • 与第三方供应商API或白标提供商集成,后者提供类似的功能并收取费用。例如,等等
  • 如果您可以将相关文档转换为表单类型,那么这将是一个非常简单的问题。可能有上百种不同的服务提供具有出色报告和数据库管理功能的嵌入式表单功能。如果需要Word格式的文档,那么您的应用程序只需将存储的数据转换为.doc/.docx文档,供用户随意下载即可

    无论您选择哪个方向,请尝试退出基于PsTools的当前设置。它就像一个纸牌堆成的溜冰场,正如@Matt Burland提到的,很可能很快就会造成一场安全灾难

    我正在构建一个应用程序,允许用户打开一个单词 通过网页记录文档

    如果是Intranet场景,那么您可以使用带有Office URI方案的应用程序协议来链接到文档,这些文档将在本地安装的客户端中打开

    Office URI架构如下所示:

    <scheme-name>:<command-name>"|"<command-argument-descriptor> "|"<command-argument>
    
    :“|”“|”
    
    具体来说,一个例子是:

    <a href='ms-word:ofe|u|https://example.com/example.docx'>Edit</a>
    
    
    
    其中,
    ms word:
    是方案,
    ofe
    命令代表打开进行编辑,
    u
    是使用后面URI的命令描述符,最后是文档本身的URI。还有其他命令,如用于查看的
    ofv
    (打开)和
    nft
    (从模板中新建),以及用于保存的其他命令描述符,如
    s

    以下是完整的参考资料:

    安装Office客户端时,这些协议将在Windows中注册

    您可以在IIS服务器上轻松启用WebDAV。WebDAV客户端是内置的,客户端带有Windows

    还可以使用类似SharePoint基金会的组件,或者是与Office客户机一起安装的ActiveX控件。

    我们也可以将此应用程序公开

    我不鼓励你这么做,除非你的公司拥有或经营像OneDrive或Office.com这样的服务。正如另一个答案中提到的,这可能很快变得棘手。此外,对普通公众强制执行专有客户端也不是一个好主意。此外,即使是微软自己的解决方案也不能可靠地跨浏览器工作,并且只能在IE上工作(甚至Edge也有这方面的问题),这将迫使特定的浏览器向公众开放。这不是个好主意

    然而,如果您确实需要,那么最好使用一些已经围绕WebDAV构建的解决方案。Alfresco ECM(企业内容管理)是公开发行的一个例子,它使用WebDAV,与您的用例类似


    还有另一个被它击中,现场演示在这里:。他们还有一个关于如何在与用例相同的行上设置自己的WebDAV服务器的基本教程。您需要找到他们的文档。

    您不能提供一个链接来下载Word文件吗?大多数机器将配置为在下载时自动打开Word文档。@Jaco,这肯定是我在问题中没有提到的,文档位于远程驱动器上,必须在那里进行修改。因此,让它被下载,然后修改,然后再次上传对用户来说是很复杂的,我们不能这样做。为什么不在共享驱动器上提供指向文档的链接呢?此外,你不能指望每个人都拥有MS Office的副本。使用它作为应用程序的一部分的依赖项来运行是一个非常糟糕的主意-尤其是因为您提到可能会将其公开。是否必须在Word中完成?不是一个非常友好的网站