主要是设置content-type,然后把文件流输出,需要前后台配合才可以做
如果直接保存页面上的东西,可以用document.execCommand("saveAs")

解决方案 »

  1.   

    这种功能要用ajax来做,否则是不可能的。因为js运行于客户端,你要把生成的html放在哪里,服务器上,不可能,js只能在客户端起作用,够不到那里,如果生成于客户端,那更是不可能,基于安全的考虑,js是不能操作客户端硬盘的,所有说不用ajax是不可能的。如果使用ajax的话,你可以把要求通过ajax发到服务器,然后在服务器端执行查询,输出结果,形成服务器端html,你再下载即可。
      

  2.   

    搞定了,在action里指定response对象参数即可,不需要再服务器生成文件,直接字符串写入流 response.setContentType("application/x-msdownload");
     response.setHeader("Content-Disposition",
     "attachment;" + " filename="+pid+".html");
     response.getOutputStream().write(text.getBytes());
     response.getOutputStream().flush();
     }