我有一个脚本,其中我想将扩展转换为另一个,然后使用特定的应用程序打开它。
例如,我的.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 :(得分: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";