最近在有网页打印需求,尝试了一下react的打印功能,遇到了不少的坑: 1.react本身有一些打印的组件,但都不好用,都是基于window.print(),但是window.print()如果直接打印的话,没有样式.处理直接当前网页的body设置为你要打印的区域,但是当你取消打印的时候你会发现整个网页都被你要打印的区域占满了,你还得用window.reload()重新加载一下页面,用户交互很不好,建议不要采用这种方式. 2.样式的问题,我们可以通过写内联样式解决,尝试了react的react-…
System.Net邮件发送功能踩过的坑 目录 System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 2.邮件发送授权码与邮件密码 3.通过邮件密码来发送邮件 4.Wireshark抓包分析 5.通过密码SSL发送成功 5.1 微软不支持在465的ssl 5.2 ssl证书 1.EazyEmail邮件发送类库 Net 类库自带了邮件发送功能.笔者对该类库,从使用的角度进行了二次封装,nuget上可搜索EazyEmail,注入容器时通过委托来获得邮箱服务器的配置地址以及发送…
最近项目中,前端采用react+antd+dva的组合,已经完成了后头管理类系统产品的更新迭代工作. 今天有一个新需求,需要在后台管理系统中实现点击打印完成指定页面的打印功能. 之前也没接触过,只知道浏览器带有打印功能的实现,window.print(). 问题来了,在react中是没有dom节点的,不过我们也是可以转为dom节点的. 常规js文件打印:https://blog.csdn.net/u014267869/article/details/52539341 在react中,其实同样也是…
首先是使用下边代码,实现js局部打印功能.参数dom为需要打印的节点,为了保证页面功能的单一性,最好弹出一个新的预览页面完成打印功能. function print(dom){ var body = document.body.innerHTML;//先获取当前页的html代码 document.body.innerHTML = document.querySelector(dom).innerHTML;//需要打印的页面 window.print(); document.body.innerH…
背景 Scrapy爬虫的确是好使好用,去过scrapinghub的官网浏览一下,更是赞叹可视化爬虫的犀利.scrapinghub有一系列的产品,开源了大部分项目,Portia负责可视化爬虫的编辑,SpiderCloud负责云端爬虫的部署,Scrapy是实现他们底层的技术.国内的可视化爬虫技术也有不少,据我所知就这几种: 集搜客 造数 如果有其他优秀的可视化爬虫我没有提到,大家可以补充.他们的功能暂不讨论,但他们都没有开源的,不方便我们研究. 而scrapinghub将Portia开源出来了,我们…
Dcloud开发webApp踩过的坑 一.总结 一句话总结:HTML5+扩展了JavaScript对象plus,使得js可以调用各种浏览器无法实现或实现不佳的系统能力,设备能力如摄像头.陀螺仪.文件系统等,业务能力如上传下载.二维码.地图.支付.语音输入.消息推送等.其实我只要把js拿到手,就可以很方便用在手机开发的网站上面了. 1.Dcloud可以做mobile web项目么? 可以,而且感觉会比浏览器多调用点api 但这就是一个普通的web项目,b/s方式,不可脱线运行,不能调用HTML5P…
更换yum源的流程 查看当前yum程序 $ rpm -qa|grep yum 这里推荐将其结果截屏或拷贝出来,以免后面报错修复. 删除原有yum源 $ rpm -aq | grep yum|xargs rpm -e --nodeps 判断自己的系统适合哪个CentOS源 放在第一位的判断标准就是系统自带python的版本. 如果自带python2.6版本,那么你比较适合CentOS 6.9系统,你所需要的rpm包的存放地址为 http://mirrors.163.com/centos/6.9/o…
React框架已经火了好长一段时间了,再不学就out了! 对React还没有了解的同学可以看看我之前的一篇文章,可以快速简单的认识一下React.React入门最好的实例-TodoList 自己从开始接触react一窍不通,到慢慢的似懂非懂,通过各种途径学习也有一阵了.学习过程中还会接触到很多新的东西,比如ES6.webpack,过程艰辛谁人懂,见坑填坑慢慢来.今天把学习过程过滤了一下,只说项目实际需要用的东西,总结了一套能看到的东西,分享给大家,希望能让读者少踩一些坑! 本文看点 实际项目效果…
这是我真正意义上地用react实现一些东西.这次分享的是一个很简单的小组件,效果图先放上来: 前端样式用的是一套框架.功能很简单,就是根据选择的维度,在成员里选择对应这个维度的选项. 首先初始化一些数据,这里我们要关注的就是newMeasureText,这是维度的value:newMeasureMember,这是维度的text.headerMsg是一个数组,作用是用来存放选择的维度和成员,所以肯定是一个二维数组.newLists是一个数组,作用是用来存放对应多维度的index的option选项(…
typescript+react+antd基础环境搭建(包含样式定制) tsconfig.json 配置 // 具体配置可以看上面的链接 这里module moduleResolution的配置都会影响到antd的显示 // allowSyntheticDefaultImports 是antd官网给的配置 必须加上 { "compilerOptions": { "outDir": "./dist/", "sourceMap":…