【问题标题】:Force Auto Open Dialog in Chrome在 Chrome 中强制自动打开对话框
【发布时间】:2017-06-30 08:21:57
【问题描述】:

FileRun 有一个漂亮的 File-Explorer Google-Drive 样式。你可以在这里试驾FileRunDemoSite

当我下载文件时,我可以选择是否要直接在 Office 应用程序中打开文件。

当我点击 Office 时,谷歌会通过 Chrome 打开文件对话框提示我。文件直接从该位置打开,而不是保存在 /downloads/ 文件夹中。

我怎样才能实现这种行为? SA 上的所有现有答案都表明这是不可能的,因此其他人也可能对此感兴趣。甚至谷歌都没有实现这一点。有没有跨浏览器的解决方案?

Onedrive 也能做到:

【问题讨论】:

  • 这是一个非常吸引人的功能。但是,当我在“打开方式...”菜单中单击“Office”时,什么也没有发生。我在 Mac 上使用 Chrome。
  • 我在 Chrome 和 Windows 上 - 效果很好。我怀疑这可以调整,因为 office 不是官方格式。

标签: javascript google-chrome httpresponse onedrive


【解决方案1】:

感谢 Thomas2D 让我走上正轨。它的基本工作原理是:

如果您开发应用程序,您可以向操作系统注册新协议。 http:// 将由您的默认浏览器处理。 applicationX:// 将由 applicationX 处理,ms-word:// 将由 word 处理。如果您单击链接,浏览器/操作系统会查找应由哪个应用程序处理协议并将请求传递给该应用程序。

对于 Office 文档,URI 有点复杂 ms-excel:ofv|u|http://contoso/Q4/budget.xls。您可以打开它只读/编辑/作为模板。查看此文档以获取所有选项的详细说明:Office URI Schemes

对于其他应用程序,请检查该应用程序的 URI 方案。

如何在网站上使用它:

不建议在 Dom 元素的 href 属性中设置指向应用程序的链接。您无法检查应用程序是否已安装。

如果您使用 Javascript,您可以检查请求是否超时/失败并改用 http://

。在href: window.location.href = encodeURI('ms-excel:ofe|u|http://example.com/excel.xlsx') 中设置协议或通过设置location.protocolhttps://www.w3schools.com/jsref/prop_loc_protocol.asp

有一个 jQuery 插件可以做到这一点:jquery.applink.js

【讨论】:

    【解决方案2】:

    我个人认为这是通过特定的 url 启动应用程序来完成的。

    我知道这适用于 iOS 启动应用程序。在 iOS 中它是由某些东西完成的(类似于 mailto:example@example.com

    <script type="text/javascript" charset="utf-8"> 
    window.location = "myapplication://myparams";
    </script>
    

    编辑:我终于明白了,你必须使用应用程序 url 方案。例如,如果你想通过浏览器打开你的 Excel 文件,你必须使用这个 JS 代码。

    window.location.href = encodeURI('ms-excel:ofe|u|http://example.com/excel.xlsx');
    

    【讨论】:

    • 链接源谈到了编辑注册表。 javascript看起来很有希望。你能给我一个工作的例子吗?
    • 是的,它会说话。但请看文章的开头。他们正在谈论 Content-Type,这可能很重要..
    • 如果您有 iPhone,例如,打开 Safari 并键入 fb:// 对话框将弹出并打开 Facebook 应用程序。 :)
    • @Thomas2D 你让我走上了正确的道路。 Content-Type 不会触发与应用一起打开。我希望这个答案更完整一点,我将写一个包含更多信息的答案。
    猜你喜欢
    • 2011-02-04
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 2012-06-22
    • 2010-10-30
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多