2015-08-28 83 views
1

我收到了一個腳本,其中我想將擴展名轉換爲另一個擴展名,然後使用特定應用程序打開它。轉換擴展名並使用應用程序將其打開

例如,我的.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> 

回答

0

出於安全目的,JavaScript不能寫在文件系統,所以它不可能改變一個文件的擴展名。

你應該能夠做一些與新的文件系統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"; 
+0

謝謝,但我需要它在Internet Explorer中運行,有什麼辦法嗎? –

+0

在本地Javascript中,沒有。使用ActiveX,你可以使用GetFile,然後file.name ='newname.ext';但我從來沒有嘗試過。 – Finrod

相關問題