2019独角兽企业重金招聘Python工程师标准>>> hot3.png

今天,弄一个打印页面的功能大致的原理想法是,ajax加载页面到当前的一个隐藏iframe里面,然后打印iframe,为了兼容所有的浏览器,只好舍弃预览功能,使用print()方法打印。可是试了好几遍,每次打印都是空白啊。具体的代码如下

function XmlPostprint(){var result='';$.ajax({url:"test222.html",success:function(data){var doc=$("iframe#flyso")[0].contentWindow.document;doc.write(data);doc.close();}});
}function prints()
{XmlPostprint();var ss=document.getElementById("flyso");ss.contentWindow.close();ss.contentWindow.focus();ss.contentWindow.print();}

之后无意中一次点击了两次打印按钮,突然发现竟然又可以打印了。才恍然大悟,jquery的ajax默认是异步加载的,也就是说prints()方法中的XmlPostprint()方法尚未完成,就直接执行下面的js语句了。解决方法就是jquery的ajax添加上async:false的属性,修改后的XmlPostprint()如下:

function XmlPostprint(){var result='';$.ajax({url:"test222.html",async:false,success:function(data){var doc=$("iframe#flyso")[0].contentWindow.document;doc.write(data);doc.close();}});
}

注:contentWindow是用于获取iframe框架的window对象。本想用contentDocument,但此属性兼容性不好。再者,非常感谢jquery插件printArea的作者,许多想法都看了插件的源代码才实现,万分感谢

转载于:https://my.oschina.net/ivanfjz/blog/80019

ajax加载数据到页面无法打印的解决办法相关推荐

  1. datatables增删改查php,jQuery+datatables插件实现Ajax加载数据与增删改查功能示例_白峰_前端开发者...

    本文实例讲述了 这里给大家分享一下我在项目中用datatables实现ajax加载数据与增删改查 注意,需要引入  搜索  新增  编辑  删除 职业姓名性别爱好 //点击查找 $(" ...

  2. .ajax显示加载动画,jQuery Ajax 加载数据时异步显示加载动画

    ajax加载后台数据就不说的那么细了. 看下面代码首先前台上放置代码 在js脚本文件中首先把这个图片动画隐藏 代码如下 $(document).ready(function () { $(" ...

  3. ajax加载vue数据,详解使用Vue.Js结合Jquery Ajax加载数据的两种方式

    整理文档,搜刮出一个使用vue.js结合jquery ajax加载数据的两种方式的代码,稍微整理精简一下做下分享. 废话不多说,直接上代码 html代码 demo {{message }} 测试jqu ...

  4. 一起学爬虫——如何爬取通过ajax加载数据的网站

    目前很多网站都使用ajax技术动态加载数据,和常规的网站不一样,数据时动态加载的,如果我们使用常规的方法爬取网页,得到的只是一堆html代码,没有任何的数据. 请看下面的代码: url = 'http ...

  5. ajax显示加载动画,jQuery Ajax 加载数据时异步显示加载动画

    jQuery Ajax 加载数据时异步显示加载动画 ajax加载后台数据就不说的那么细了. 看下面代码首先前台上放置代码 在js脚本文件中首先把这个图片动画隐藏 代码如下 $(document).re ...

  6. 动卡空间服务器显示正在加载,绝地求生进不去游戏一直卡在加载画面是什么原因?附解决办法...

    原标题:绝地求生进不去游戏一直卡在加载画面是什么原因?附解决办法 要说玩<绝地求生>的时候最恼人的事情是什么,非加载页面那个一直在转的圈圈莫属了.不知道有多少玩家体验过一直等着那个圈圈转完 ...

  7. VS2010未能加载 'VSTS for Database Professionals'包的解决办法

    VS2010未能加载 'VSTS for Database Professionals'包的解决办法: 开始菜单->Microsoft Visual Studio 2010->Visual ...

  8. js 下拉底部加载|滑轮滚动到页面底部ajax加载数据的实例

    转载链接:http://www.cnblogs.com/thinksley/archive/2013/05/12/3074237.html 滚动下拉到页面底部加载数据是很多瀑布流网站的做法,那来看看配 ...

  9. 滑轮滚动到页面底部ajax加载数据的实例

    滚动下拉到页面底部加载数据是很多瀑布流网站的做法,那来看看配合jsonp是如何实现的吧,小菜总结记录之用,高手勿喷. 当然本例子采用的是jquery库,后期会做成原生js. 本例的数据调用的是锋利的j ...

最新文章

  1. 查找python项目依赖并生成requirements.txt
  2. powerdesigner生成数据库文档
  3. 三因子两水平doe_DOE试验设计案例
  4. mysql技术分享-- 视图是什么
  5. row number函数 oracle,oracle函数 ROW_NUMBER()
  6. mysql 分区 性能更差_用案例分析MySQL 5.7分区表性能下降的根本原因
  7. 【英语学习】【WOTD】grift 释义/词源/示例
  8. python的难点是什么,【python基础学习】基础重点难点知识汇总
  9. csdn怎么查看自己写的文章
  10. Altium Designer使用者,你想要一键出Gerber吗?
  11. 桥梁防撞主动预警系统解决方案-广州泛尔维
  12. jap里的java文件代码_jap里的java文件代码
  13. python爬虫:模拟登录新浪微博并实现cookies保存,详细讲一下rsa
  14. opencv+ffmpeg+Qt h264录制
  15. windows的ping测试脚本
  16. Codeforces 802 补题
  17. 【游戏逆向】游戏玩家技能冷却分析
  18. Vue + element-ui 实现分页功能完整流程
  19. Topmobi接口协议
  20. 小米OJ 54(数独游戏)

热门文章

  1. freeradius 在centos上的安装和调试
  2. Sqlserver 2008:sp_msforeachdb 坑爹的错误陷阱
  3. 查看linux系统版本,内核,CPU,MEM,位数的相关命令
  4. 推测用户行为 程序员分享Android开发经验
  5. 使用winpcap定制TCP包发送
  6. selenium定位php,selenium之元素定位
  7. Python实现聚类 KMeans算法
  8. 企业大数据营销需要什么思路
  9. linux 屏蔽信号 sig_kill sig_stop,linux 信号处理
  10. python报表自动化系列 - 在Windows中打开指定目录