代码之家  ›  专栏  ›  技术社区  ›  Heinzi

确保在浏览器之外打开了<a href=“local file>

  •  2
  • Heinzi  · 技术社区  · 15 年前

    对于Intranet web应用程序(文档管理),我想显示与某个客户关联的文件列表。生成的HTML如下所示:

    <a href="file:///server/share/dir/somefile.docx">somefile.docx</a>
    <a href="file:///server/share/dir/someotherfile.pdf">somefile.pdf</a>
    <a href="file:///server/share/dir/yetanotherfile.txt">yetanotherfile.txt</a>
    

    这个很好用。不幸的是,当点击文本文件(或图像文件)时,Internet Explorer(我猜大多数其他浏览器也是如此)坚持在浏览器中显示它,而不是用相关应用程序(例如记事本)打开文件。在我们的例子中,这是不受欢迎的行为,因为它不允许用户编辑文件。

    这种行为是否有解决办法(例如 <a href="file:///..." open="external"> )? 我知道这是一个特定于浏览器的东西,只有IE的解决方案就可以了(毕竟这是一个内部网应用程序)。

    2 回复  |  直到 15 年前
        1
  •  1
  •   Platinum Azure    15 年前

    你想让人们乱搞你服务器上的东西吗?这对我来说意味着缺乏安全感。。。

    我建议让用户在本地签出,并使用数据库或类似工具,允许用户签入新的草稿。所说的草稿应该在实际写入服务器的文件系统之前以某种方式进行验证和验证。

        2
  •  0
  •   J.Hendrix    15 年前

    我刚刚测试了这个,它似乎有效(IE6,不是在FF或Chrome中):

    <HTML>
    <script language="JavaScript">
      function startWord(strFile)
      {
        var myApp = new ActiveXObject("Word.Application");
        if (myApp != null)
        {
          myApp.Visible = true;
          myApp.Documents.Open(strFile);
        }
      }
    </script>
    <a href="javascript:startWord('file:///server/share/dir/test.doc')">test.doc</a>.
    

    找到了 here .