也就是说能不能在javascript中,调用windows的SaveFileDialog()对话框?

解决方案 »

  1.   

    <object id=FileDialog style="left: 0px; TOP: 0px" classid="clsid:f9043c85-f6f2-101a-a3c9-08002b2f49fb">
    <param name="_ExtentX" VALUE="847">
    <param name="_ExtentY" VALUE="847">
    <param name="_Version" VALUE="393216">
    <param name="CancelError" VALUE="0">
    <param name="Color" VALUE="0">
    <param name="Copies" VALUE="1">
    <param name="DefaultExt" VALUE="">
    <param name="DialogTitle" VALUE="">
    <param name="FileName" VALUE="">
    <param name="Filter" VALUE="">
    <param name="FilterIndex" VALUE="0">
    <param name="Flags" VALUE="0">
    <param name="FontBold" VALUE="0">
    <param name="FontItalic" VALUE="0">
    <param name="FontName" VALUE="">
    <param name="FontSize" VALUE="8">
    <param name="FontStrikeThru" VALUE="0">
    <param name="FontUnderLine" VALUE="0">
    <param name="FromPage" VALUE="0">
    <param name="HelpCommand" VALUE="0">
    <param name="HelpContext" VALUE="0">
    <param name="HelpFile" VALUE="">
    <param name="HelpKey" VALUE="">
    <param name="InitDir" VALUE="">
    <param name="Max" VALUE="0">
    <param name="Min" VALUE="0">
    <param name="MaxFileSize" VALUE="260">
    <param name="PrinterDefault" VALUE="1">
    <param name="ToPage" VALUE="0">
    <param name="Orientation" VALUE="1"></object>function OpenFile()
    {
    FileDialog.CancelError=true;
    FileDialog.Filter="Word模板|*.doc|Word模板|*.dot";
    FileDialog.ShowOpen();
    var WordApp=new ActiveXObject("Word.Application");
    WordApp.Application.Visible=false;
    var Doc=WordApp.Documents.Open(FileDialog.filename);
    Doc.Activate();
    Doc.Parent.Options.InsertedTextColor=4;
    Doc.Parent.Options.InsertedTextMark=2;
    Doc.Parent.Options.DeletedTextColor=4;
    Doc.Parent.Options.DeletedTextMark=1;
    Doc.TrackRevisions=true;
    Doc.PrintRevisions=true;
    Doc.ShowRevisions=true;
    Doc.Application.UserName="";
    var Range=doc.Range();
    Range.Select();
    var Selection=WordApp.Selection;
    Selection.Copy();
    App.focus();
    document.execCommand("Paste");
    App.focus();
    WordApp.DisplayAlerts=false;
    Doc.Close();
    WordApp.DisplayAlerts=true;
    WordApp.Quit();
    return false;
    }
      

  2.   

    我用的是打开,你查一下,我记的有个属性如果是True就是打开,False就是另存
      

  3.   

    to:gjd111686(数字金刚)
    我调用你说的方法试了不行,是不是我的用法有问题?还是因为客户端的安全性?
    附源码如下:
    <HTML>
    <HEAD>
    <TITLE>SaveAs TEST</TITLE>
    <SCRIPT LANGUAGE="javascript">
    //<!--
    //var fso = new ActiveXObject("Scripting.FileSystemObject");function saveFileDialog()
    {
      FileDialog.CancelError=true;
      try{
        FileDialog.title = "文件另存为";
        FileDialog.Filter = "custom files (*.xls)|*.xls|All files (*.*)|*.*";
        FileDialog.FilterIndex = 2;
        //Microsoft JScript 运行时错误: 对象不支持此属性或方法
        FileDialog.ShowSave();
        alert("succes:"+ FileDialog.filename);
      }
      catch(e){
        alert("false:"+ FileDialog.filename);
      }
    }function OpenFile()
    {
    FileDialog.CancelError=true;
    FileDialog.Filter="Word模板|*.doc|Word模板|*.dot";
    //Microsoft JScript 运行时错误: 对象不支持此属性或方法
    FileDialog.ShowOpen();
    var WordApp=new ActiveXObject("Word.Application");
    WordApp.Application.Visible=false;
    var Doc=WordApp.Documents.Open(FileDialog.filename);
    Doc.Activate();
    Doc.Parent.Options.InsertedTextColor=4;
    Doc.Parent.Options.InsertedTextMark=2;
    Doc.Parent.Options.DeletedTextColor=4;
    Doc.Parent.Options.DeletedTextMark=1;
    Doc.TrackRevisions=true;
    Doc.PrintRevisions=true;
    Doc.ShowRevisions=true;
    Doc.Application.UserName="";
    var Range=doc.Range();
    Range.Select();
    var Selection=WordApp.Selection;
    Selection.Copy();
    App.focus();
    document.execCommand("Paste");
    App.focus();
    WordApp.DisplayAlerts=false;
    Doc.Close();
    WordApp.DisplayAlerts=true;
    WordApp.Quit();
    return false;
    }//-->
    </SCRIPT>
    </HEAD>
    <BODY>
    <object id="FileDialog" style="left: 0px; TOP: 0px" classid="clsid:f9043c85-f6f2-101a-a3c9-08002b2f49fb">
    <param name="_ExtentX" VALUE="847">
    <param name="_ExtentY" VALUE="847">
    <param name="_Version" VALUE="393216">
    <param name="CancelError" VALUE="0">
    <param name="Color" VALUE="0">
    <param name="Copies" VALUE="1">
    <param name="DefaultExt" VALUE="">
    <param name="DialogTitle" VALUE="">
    <param name="FileName" VALUE="">
    <param name="Filter" VALUE="">
    <param name="FilterIndex" VALUE="0">
    <param name="Flags" VALUE="0">
    <param name="FontBold" VALUE="0">
    <param name="FontItalic" VALUE="0">
    <param name="FontName" VALUE="">
    <param name="FontSize" VALUE="8">
    <param name="FontStrikeThru" VALUE="0">
    <param name="FontUnderLine" VALUE="0">
    <param name="FromPage" VALUE="0">
    <param name="HelpCommand" VALUE="0">
    <param name="HelpContext" VALUE="0">
    <param name="HelpFile" VALUE="">
    <param name="HelpKey" VALUE="">
    <param name="InitDir" VALUE="">
    <param name="Max" VALUE="0">
    <param name="Min" VALUE="0">
    <param name="MaxFileSize" VALUE="260">
    <param name="PrinterDefault" VALUE="1">
    <param name="ToPage" VALUE="0">
    <param name="Orientation" VALUE="1">
    </object>
    <BR>SaveAs TEST<BR>
    <BUTTON onclick="saveFileDialog()" >saveFileDialog</BUTTON><BR>
    <BUTTON onclick="OpenFile()" >OpenFile</BUTTON><BR>
    </BODY>
    </HTML>
      

  4.   

    你看一下你的计算机上是否有此控件被注册.MSComDlg.CommonDialog是否存在
      

  5.   

    是OLE的还是ActiveX的,你是在哪里看他们有没有注册?你说的方法你试成功过吗?我的代码有问题吗?
      

  6.   

    <script language="vbscript">
    sub save_as()
       Set objFSO = CreateObject("Scripting.FileSystemObject")
       strSaveFileName = InputBox("Please enter the complete path where you want to save your script (for example, C:\Scripts\MyScript.vbs).")
       If strSaveFileName = "" Then
          Exit Sub
       End If   Set objFile = objFSO.CreateTextFile(strSaveFileName)
       objFile.WriteLine code.InnerText
       objFile.Close
    end sub
    </script>
    <div id="code">xxxxxxxxx</div>
    <br><input type="button" onclick="vbscript:save_as()">
      

  7.   

    那段代码可能有点问题,点击“saveFileDialog”总是提示:false:undefined的错误;点击“OpenFile”总是提示:脚本错误,对象不支持此属性或方法;我对javascript不太熟悉,各位高手再看看,究竟是什么样的错误?
      

  8.   

    possible_Y兄的代码用是可以用,不过是VBScript的。可惜是还是没有实现“另存为”对话框的功能,我的目的就是要实现对话框的功能,而不是保存本地文件。谢了!