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. 不用call和apply方法模拟实现ES5的bind方法

    本文首发我的个人博客:前端小密圈,评论交流送1024邀请码,嘿嘿嘿

  2. Android:手把手带你深入剖析 Retrofit 2.0 源码

    前言 在Andrroid开发中,网络请求十分常用 而在Android网络请求库中,Retrofit是当下最热的一个网络请求库 今天,我将手把手带你深入剖析Retrofit v2.0的源码,希望你们会喜 ...

  3. 关于TagHelper的那些事情——自定义TagHelper(内嵌TagHelper)

    内嵌TagHelper 上一篇文章中提到有时候需要设计一种内嵌的TagHelper,如下: <my name="yy" age="35"> < ...

  4. 创建一个简单的windows服务,每间隔一定时间重复执行批处理文件

    创建一个windows服务项目,增加App.config <?xml version="1.0" encoding="utf-8" ?> <c ...

  5. [Todo] Java及C++ Exception整理

    今天接触到一些Java Exception方面的内容,整理如下: http://developer.51cto.com/art/201111/304649.htm C++中Exception等的整理

  6. (转载)uCOS-II的嵌入式串口通信模块设计

    在嵌入式应用中,使用RTOS的主要原因是为了提高系统的可靠性,其次是提高开发效率.缩短开发周期.uCOS-II是一个占先式实时多任务内核,使用对象是嵌入式系统,对源代码适当裁减,很容易移植到8~32位 ...

  7. Python 爬虫(2)多线程

    前面说过由于GIL的存在,Python的多线程效率没有希望的那么高,python的多线程适合IO密集型的情况,而爬虫恰好就是一个IO密集的情况,因为爬虫中很大一部分时间,是在等待socket返回数据. ...

  8. RecyclerView.ItemDecoration 间隔线

    内容已更新到:https://www.cnblogs.com/baiqiantao/p/19762fb101659e8f4c1cea53e7acb446.html 目录一个通用分割线ItemDecor ...

  9. JSP学习笔记(一):JSP语法和指令

    一.语法 1.脚本程序的语法格式: 脚本程序可以包含任意量的Java语句.变量.方法或表达式,只要它们在脚本语言中是有效的. <% 代码片段 %> 2.中文编码问题 如果我们要在页面正常显 ...

  10. 基于Spring Boot和Spring Cloud实现微服务架构学习--转

    原文地址:http://blog.csdn.net/enweitech/article/details/52582918 看了几周spring相关框架的书籍和官方demo,是时候开始总结下这中间的学习 ...