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就行了。

js 将网页生成为html保存访问的更多相关文章

  1. JS实现网页选取截屏 保存+打印 功能(转)

    源码地址: 1.1 确定截图选取范围 用户在开始截图后,需要在页面上选取一个截图范围,并且可以直观的看到,类似如下效果: image 我们的选取范围就是鼠标开始按下的那个点到鼠标拖动然后松开的那个点之 ...

  2. 第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求

    第三百五十节,Python分布式爬虫打造搜索引擎Scrapy精讲—selenium模块是一个python操作浏览器软件的一个模块,可以实现js动态网页请求 selenium模块 selenium模块为 ...

  3. js实现网页防止被iframe框架嵌套及几种location.href的区别

    首先我们了解一下几种location.href的区别简单的说:几种location.href的区别js实现网页被iframe框架功能,感兴趣的朋友可以了解下 首先我们了解一下:window.locat ...

  4. 关于js渲染网页时爬取数据的思路和全过程(附源码)

    于js渲染网页时爬取数据的思路 首先可以先去用requests库访问url来测试一下能不能拿到数据,如果能拿到那么就是一个普通的网页,如果出现403类的错误代码可以在requests.get()方法里 ...

  5. 利用canvas将网页元素生成图片并保存在本地

    利用canvas将网页元素生成图片并保存在本地 首先引入三个文件: 1.<script type="text/javascript" src="js/html2ca ...

  6. JS让网页上文字出现键盘打字的打字效果

    一个挺简单的网页特效:JS让网页上文字出现键盘打字的打字效果实现 演示地址:http://codepen.io/guihailiuli/pen/jPOYMZ 以代码形式实现过程分析: <html ...

  7. Node.js 动态网页爬取 PhantomJS 使用入门(转)

    Node.js 动态网页爬取 PhantomJS 使用入门 原创NeverSettle101 发布于2017-03-24 09:34:45 阅读数 8309  收藏 展开 版权声明:本文为 winte ...

  8. #3使用html+css+js制作网页 番外篇 使用python flask 框架 (I)

    #3使用html+css+js制作网页 番外篇 使用python flask 框架(I 第一部) 0. 本系列教程 1. 准备 a.python b. flask c. flask 环境安装 d. f ...

  9. JS判断网页是否在微信中打开/

    JS判断网页是否在微信中打开,代码如下: <script type="text/javascript"> function is_weixn(){ var ua = n ...

随机推荐

  1. mysql存储过程导入表

    运用存储过程,把用户表一数据导入用户表二 DELIMITER @@ CREATE PROCEDURE imp_to_user2() BEGIN – 声明一个标志done, 用来判断游标是否遍历完成 D ...

  2. C# winform 禁止窗体移动

    #region 禁止窗体移动 public const int WM_SYSCOMMAND = 0x112; public const int SC_MOVE = 0xF012; protected ...

  3. (转)Ext.Button点击事件的三种写法

    转自:http://maidini.blog.163.com/blog/static/377627042008111061844345/ ExtJs的写法太灵活了,现在收集了关于Button点击事件的 ...

  4. serial-input, parallel-output (SIPO) chip : TPIC6595 , 74HC164 , 74HC4094 or 74HC595

    http://electronics.stackexchange.com/questions/6676/which-sipo-chip-is-better-74hc4094-or-74hc595-or ...

  5. ida sdk add_struc_member array

    tid_t tid = get_struc_id ( "foo_type" ) ; struc_t * sptr = get_struc ( tid ); if ( sptr == ...

  6. LINQ中的动态排序

    使用Linq动态属性排序 使用反射: public static Func<T,Tkey> DynamicLambda<T, Tkey>(string propertyName ...

  7. 博雅PHP高级工程师面试题-自拟

    作者:元如枫   2010年 1.现有学校课程内容系统简单需求描述,试着提供解决方案. 需求简单描述如下: 1)对象及属性 学校: 学校名称,学校所属分类,学校介绍,学校地图标记,学校所属地区,标签, ...

  8. 前端 fetch 通信

    随着前端异步的发展, XHR 这种耦合方式的书写不利于前端异步的 Promise 回调. 而且,写起来也是很复杂. fetch API 本来是在 SW(ServiceWorkers) 中提出的, 不过 ...

  9. [转]对Why Scrum will never work的评论

    近来,Maurits的一篇博文“Why Scrum will never work” 一石激起千层浪.著名技术分享网站酷壳(http://coolshell.cn/articles/5044.html ...

  10. Tor Browser(洋葱浏览器)——一款使你匿名上网的浏览器

    第一次知道Tor是在有关斯诺登的新闻报道中. 简单说Tor是一款是你匿名访问网络的的软件.用户通过Tor可以在因特网上进行匿名交流. 为了实现匿名目的,Tor把分散在全球的计算机集合起来形成一个加密回 ...