转换扩展并使用应用程序打开它

时间:2015-08-28 11:00:42

标签: javascript html

我有一个脚本,其中我想将扩展转换为另一个,然后使用特定的应用程序打开它。

例如,我的.mht文件位于我的桌面。一个带有内部javascript的html文件。

我想要发生的是当我在Internet Explorer上打开HTML文件并单击超链接时,它应该将.mht文件转换为.docx并使用Microsoft Word打开它。不幸的是,我的下面的代码不起作用,如果我点击超链接,它会打开Microsoft Word,但给我一个错误消息,说无法找到该文件。有人可以帮助我吗?在此先感谢,非常感谢。

<HTML>
   <HEAD>

<script type="text/javascript">
  <!--

     function openDocument(file)
     {
        try
        {
            var Word = new ActiveXObject("Word.Application")
            var file;
            file = file.split(".");
            file = file[0]+".docx";
            Word.Visible = true
            Word.Documents.Open(file)
        }

        catch(exception)
        {
            if(Word)
            {
                alert(exception.message)
                Word.Quit()
            }
            window.location.href = file
        }
     }

     // -->
     </script>
   <TITLE>Launch Word - Local</Title>
   </HEAD>
   <BODY>

<a href="javascript:openDocument('C:\Users\test\Desktop\KB.mht')">Summary</a>

   </BODY>
   </HTML>

1 个答案:

答案 0 :(得分:0)

出于安全考虑,Javascript无法在文件系统上写入,因此无法更改文件的扩展名。

您应该可以使用新的FileSystem API执行某些操作(请查看该教程:http://www.html5rocks.com/en/tutorials/file/filesystem/),但它仅适用于Chrome(http://caniuse.com/#feat=filesystem

编辑: 使用ActiveX,使用GetFile可能有效:

var fso = new ActiveXObject("Scripting.FileSystemObject");
var file = fso.GetFile("c:\\myfile.mht");   
file.name = "newName.newExt";