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. pom通用依赖

    <dependencies><!--common--><dependency><groupId>com.google.guava</groupId ...

  2. system.ComponentModel.Win32Exception (0x80004005): 目录名无效。 解决方法

    有时候我们需要在程序中调用 cmd.exe  执行一些命令 比如 我们会在程序写到 /// <summary> /// 执行Cmd命令 /// </summary> /// & ...

  3. UML建模之时序图(Sequence Diagram)教程

    一.时序图 时序图是一种强调时间顺序的交互图,在时序图中,首先把参与交互的对象放在图的上方,沿X轴方向排列.通常把发起交互的对象放在左边,较下级对象依次放在 右边,然后把这些对象发送和接受的消息沿Y轴 ...

  4. Delphi XE 4,Rad Studio XE 4 官方下载,更新Update 1(附破解)

    http://blog.csdn.net/maxwoods/article/details/8842889 XE4 Update1 下载: http://altd.embarcadero.com/do ...

  5. MySQL MyISAM和InNodb备份与恢复技巧

    1. 为什么要备份数据库 对数据库来说,最重要也最容易被忽视的就是备份.由于不可预测性,偶然的事件可能会导致非常惨重的损失. 数据越是重要,数据的变化越频繁,备份越发需要经常进行. 备份周期根据不同业 ...

  6. Source Insight常用快捷键及注释快捷键设置

    转:http://blog.csdn.net/tlaff/article/details/6536610 在使用SI过程中,我根据自己的使用习惯修改了它的默认快捷键,并且在配置文件中添加了一些人性化功 ...

  7. JACOB的语法

    转自:http://www.bitscn.com/pdb/java/200904/161117.html 如果你想写一个JAVA代码,其中需要调用JACOB提供的功能,而你还是新手,也许篇文章会大大降 ...

  8. 彻底删除SVN版本库中部分文件或文件夹

    例:假设SVN库路径为E:/svn/project,库中的目录结构为 QA/Trunk Software/Tags/test.exe 删除Software/Tags/目录下的test.exe文件 操作 ...

  9. ssh免密登录方法不生效?Authentication refused: bad ownership or modes for directory

    机器A通过ssh登录机器B,方法有两种: 1.密码方式 2.密钥方式: 两种方式同时开启的时候,优先使用密钥方式. 密钥登录方式的配置方法是,首先在登录机器B上创建文件authorized_keys( ...

  10. 4 cocos2dx 3.0 源码分析- scheduler

    scheduler 这个类, 负责了引擎的自定义更新, 及定时更新相关的操作, 看看下面的代码,很熟悉吧.   schedule(schedule_selector(HelloWorld::updat ...