js 将网页生成为html保存访问

2012-04-03
今天实现了一个需求,主题是将浏览中的网页生成html保存起来,记录访问url,挂在公司网站上作案例。
 
 
首先忙活了N久的是去搜索生成html的js函数。
 
什么IE自带的ActiveX,js插件,js的winow.print();函数调用打印机打印页面等
 
最后结果是怎么搞都是不行。
 
就快到穷途末路时,在stackoverflow.com网站看到一条问题,也是与生成html相关的。
 
牛人解决方案以下:
 
使用jQuery
 
// 看到这句我顿时哑语了,这么简单的方法我怎么想不到
 
var dom = $("html").html(); //获取html节点的内容
//alert(dom);
 
$.post("exportCase.do",{dom:$("html").html()}); //服务器接受请求处理,将html内容输出为xxx.htm保存到你想指定的路径
 
 
 
 
 
最后我借鉴与此,写了一个完善的js函数:
< script  type = "text/javascript" >
<!--
function  exportCase() {
      try{
            var  filename = prompt( "请输入要生成的html文件名:" , "" );
             if (undefined==filename ||  "" ==filename) {
                  new  Boxy( "<div style='width:300px;height:100px;'><p>文件名为空,生成失败</p></div>" ,  { title :  '消息提示' } );
                   return ;
             }
             //alert("export filename:"+filename);
             $j.ajax( {
                   type :  "post" ,
                  url :  "exportCaseAjax.do" ,
                  cache :  "false" ,
                  data :  {
                         "dom" :$j( "html" ).html(),
                         "filename" :filename,
                         "rnd" : ajaxRandom()
                   } ,
                  dataType: "json" ,
                  success :  function (data, textStatus)  {
                        if (!isUndefined(data)) {
                              var  code = data.code;
                               //alert(code);
                               if (code==0) {
                                    var  d = data.data;
                                     new  Boxy( "<div style='width:400px;height:100px;'><p>" +d.name+ "文件生成成功!</p><p>访问路径为:</p><p>&nbsp;&nbsp;" +d.url+ "</p></div>" ,  { title :  '消息提示' } );
                               } else {
                                    new  Boxy( "<div style='width:300px;height:100px;'><p>" +data.data+ "</p></div>" ,  { title :  '消息提示' } );
                               }
                        }
                  }
            } );   
       }catch (err) {}     
}
//-->
</ script >
 
 
服务器处理的action代码我就不贴出来了,用I/O就好了。
相关文章
相关标签/搜索