CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Web 开发 >  JavaScript

如何用javascript实现“另存为”的功能的对话框

楼主wunianyang(一片阳光)2003-12-01 12:47:06 在 Web 开发 / JavaScript 提问

我想把的页面中的ActiveXObject对象另存为本地的文件,需要一个创建本地文件的对话框。各位有什么好的方法?就和input   type="file"的对话框类似,可惜input   type="file"是个只适合于上传文件用的对话框。 问题点数:0、回复次数:11Top

1 楼wunianyang(一片阳光)回复于 2003-12-03 12:30:40 得分 0

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

2 楼gjd111686(数字金刚)回复于 2003-12-03 13:00:39 得分 0

<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;  
  }Top

3 楼gjd111686(数字金刚)回复于 2003-12-03 13:02:04 得分 0

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

4 楼wunianyang(一片阳光)回复于 2003-12-03 17:55:01 得分 0

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>Top

5 楼gjd111686(数字金刚)回复于 2003-12-03 18:22:08 得分 0

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

6 楼wunianyang(一片阳光)回复于 2003-12-03 18:48:20 得分 0

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

7 楼ieghd(含笑一生)回复于 2003-12-22 18:27:32 得分 0

可以使用Top

8 楼possible_Y(████本人签名需要刮开,方可看到 )回复于 2003-12-22 20:36:51 得分 0

<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()">Top

9 楼gbliang(海风)回复于 2003-12-23 09:14:52 得分 0

SaveFileDialog()Top

10 楼super76(瞻云听雨)回复于 2003-12-23 10:30:39 得分 0

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

11 楼wunianyang(一片阳光)回复于 2003-12-25 19:03:41 得分 0

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

相关问题

  • 怎样实现WebBrowser中另存为对话框功能?
  • 关于另存为对话框(高分)
  • 如何控制另存为对话框
  • 关于Flags 属性(“打开”、“另存为”对话框)
  • 可是,如何打开另存为对话框呢?
  • 简单问题,关于标准另存为对话框
  • 如何调出"另存为"或"保存"的对话框?
  • 在ASP.net中怎样弹出"另存为"对话框?
  • 打开网页另存为对话框?谢谢
  • 高分求救。创建打开/另存对话框 的问题。

关键词

  • saveas test

得分解答快速导航

  • 帖主:wunianyang

相关链接

  • Web开发类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo