toBlob 兼容性: 在最新版chrome和firefox中能正常使用,在Safari中报错:没有这个函数 规避方法: 不使用toBlob,使用toDataURL()将file转成base64编码,然后转成blob,如果需要,可以再转成file 以下为在vue中的写法: var file = this.blobToFile(this.dataURItoBlob(this.form.headPicSrc), 'file') this.formData.append('avatar', file)…
问题场景 在前端很多的项目中,文件下载的需求很常见.尤其是通过JS生成文件内容,然后通过浏览器端执行下载的操作.如图片,Execl 等的导出功能.日前,项目中就遇到了这类需求,在浏览器端实现保存当前网页为图片,然后还可以下载. 解决方案 网页生成图片 这里可以采用 html2canvas 来实现.并且可以兼容大部分主流的浏览器. Firefox 3.5+ Google Chrome Opera 12+ IE9+ Safari 6+ 文件下载 第一种方案 HTML5 新增了 download 属性…
a 标签的download属性在下载图片文件的时候是如何的方便,可是可是谷歌浏览器不支持下载,而是下载打开新窗口预览图片.这个兼容性问题如何解决呢? 了解了一番,HTMLCanvasElement.toBlob()方法可以用以展示canvas上的图片:这个图片文件可以被缓存或保存到本地,由用户代理端自行决定. 更多HTMLCanvasElement.toBlob()详情前去https://developer.mozilla.org/zh-CN/docs/Web/API/HTMLCanvasEle…
一,前端合成带水印的图片 一般来说,生成带水印的图片由后端生成,但不乏有时候需要前端来处理.当然,前端处理图片一般不建议,一方面js的处理图片的方法不全,二是有些老版本的浏览器对canvas的支持度不够. 下面我们就说说,利用canvas 生成带水印的图片. 1.我们要实现一下效果 2.创建一个canvas var canvas = document.createElement('canvas'); var time = new Date(); var logoCanvas =time+' '+…
前言 图片裁剪上传,不仅是一个很贴合用户体验的功能,还能够统一特定图片尺寸,优化网站排版,一箭双雕. 需求就是那么简单,在浏览器里裁剪图片并上传到服务器. 我第一个想到的方法就是,将图片和裁剪参数(x,y,scale,rotate)一并上传给服务器,服务器来做图片处理,so easy.但是,这并不符合潮流发展的方向:能在前端做的处理,就放前端做吧.与潮流妥协的结果就是,前端越来越复杂. 一开始我并不认为浏览器能够读取并生成图片.想想看啊,要做"点击复制"的这样简单的功能,都需要借助 F…
如何用CropBox实现头像裁剪并与java后台交互 参考网站:https://developer.mozilla.org/zh-CN/docs/Web/API/Blob 参考: http://blog.csdn.net/u013160024/article/details/51849732 http://www.cnblogs.com/shinefon-2-2/p/5901330.html http://www.cnblogs.com/hhhyaaon/p/5928152.html 主流的前端…
使用html2canvas 生成尺寸较大 base64 后进行 a标签  download 下载 ,浏览器报网络失败错误 通过谷歌搜索 发现原因是 因为截取尺寸较大  导致生成base64 长度太大 ,达到了a标签的href 上限,所以报错下载失败,解决方案是 将base64 dataURI转换为Blob 文件对象 然后a 链接下载 blob文件路径 // edited from https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanva…
Cropper.js是一款很好用的图片裁剪工具,可以对图片的尺寸.宽高比进行裁剪,满足诸如裁剪头像上传.商品图片编辑之类的需求. github: https://github.com/fengyuanchen/cropperjs 网站: https://fengyuanchen.github.io/cropperjs/ 简单使用 使用很简单,首先需要一个image或者canvas元素: <!-- Wrap the image or canvas element with a block elem…
最近工作中遇到的需求,将div转成图片并保存. 1.准备需要用到的js插件jquery-1.8.2.js,html2canvas.min.js(将div转换为canvas),bluebird.js(用户IE支持ES6 Promise特性) 2.页面demo <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>div to…
一 前言 最近做了一个周报,从不同的数据表抓取数据,然后展示到前端页面显示.这个过程不难,让我烦恼的是:要把周报的数据导出来,然后打印,打印也必须在一张纸上.想到这里,我整理了一下思绪,我要写几个存储过程,存储过程里有很多复杂的逻辑元素.要做个导出功能,还必须在一张A4纸上打印出来.纳尼?必须在一张纸上打印!然后我翻阅了资料和问了度娘.html2canvas插件可以实现我的需求.一开始我是很高兴的,因为能行.接下来我就发现了一些问题: 1.下载下来的js,运行直接报错,Oh,天呐! 2.有些浏览…
前言 图片裁剪上传,不仅是一个很贴合用户体验的功能,还能够统一特定图片尺寸,优化网站排版,一箭双雕. 需求就是那么简单,在浏览器里裁剪图片并上传到服务器. 我第一个想到的方法就是,将图片和裁剪参数(x,y,scale,rotate)一并上传给服务器,服务器来做图片处理,so easy.但是,这并不符合潮流发展的方向:能在前端做的处理,就放前端做吧.与潮流妥协的结果就是,前端越来越复杂. 一开始我并不认为浏览器能够读取并生成图片.想想看啊,要做"点击复制"的这样简单的功能,都需要借助 F…
依赖 npm install file-saver 页面 <ve-chart ref="chart"></ve-chart> <el-button type="danger" @click="exportChart">导出图表</el-button> JS exportChart () { if (typeof Blob !== 'function') { this.$alert('您的浏览器不支持…
Uncaught DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported 一.总结 一句话总结:解决方案是图片设置crossOrigin属性 图片设置 :crossOrigin属性代码片段:img.setAttribute("crossOrigin",'Anonymous') 大概意思是canvas无法执行toDataURL方法:污染…
/* canvas-toBlob.js * A canvas.toBlob() implementation. * 2016-05-26 * * By Eli Grey, http://eligrey.com and Devin Samarin, https://github.com/eboyjr * License: MIT * See https://github.com/eligrey/canvas-toBlob.js/blob/master/LICENSE.md */ /*global…
一.常用的骨灰级清除浮动 .clearfix:after { content: "."; display: block; height:; clear: both; visibility: hidden; overflow: hidden; } 解读浮动闭合最佳方案:clearfix 二.使用斜杠/分割的关键字 1.font H2{ font:12px/100% sans-serif; } 分割的分别是 字体大小 与 行高 ,其他关键是用空白符分割. 2.background div{…
本人是windows8.1的操作系统,亲测安装成功 解决方法如下: 1.卸载干净sql Server2008r2,包括注册表内容,删除c盘下的安装路径! 2.关闭防火墙(这步很重要) 3.断开网络连接 4.以管理员身份运行安装 5.不以兼容模式运行!在"setup.exe"属性下,tab选项卡中兼容性,勾除掉. 这篇文章转载自http://www.cnblogs.com/w519/p/3570425.html 我要感谢这个牛人,不然我就要重做系统或者在虚拟机中安装了.…
在IE8浏览器以后版本,都有一个"兼容性视图",让不少新技术无法使用.那么如何禁止浏览器自动选择"兼容性视图",强制IE以最高级别的可用模式显示内容呢?下面就介绍一段HTML代码. X-UA-Compatible是一个设置IE浏览器兼容模式的属性,在IE8浏览器之后诞生.IE8或者IE9有很多种模式,比如,IE8有4种模式:IE5.5怪异模式.IE7标准模式.IE8几乎标准模式.IE8标准模式:而IE9有7种模式: IE5.5怪异模式.IE7标准模式.IE8几乎标准…
企业IT管理员IE11升级指南 系列: [1]—— Internet Explorer 11增强保护模式 (EPM) 介绍 [2]—— Internet Explorer 11 对Adobe Flash的支持 [3]—— IE11 新的GPO设置 [4]—— IE企业模式介绍 [5]—— 不跟踪(DNT)例外 [6]—— Internet Explorer 11面向IT专业人员的常见问题 [7]—— Win7和Win8.1上的IE11功能对比 [8]—— Win7 IE8和Win7 IE11对比…
在现在大型的项目或者软件开发中,一般都会有很多种终端, PC端比如Winform.WebForm,移动端,比如各种Native客户端(iOS, Android, WP),Html5等,我们要满足以上所有这些客户端的需求,实现前后端的分离,一种最常见的做法是,编写WebService API来为以上客户端提供数据.近年来越来越多的企业或者网站支持Restfull方式的WebService,比如当当网开源Dubbox,扩展Dubbo服务框架支持REST风格远程调用,这个是Java版本的,在.NET中…
开篇 笔者刚刚结束淘宝的工作,现在加入了一家有青春活力的垂直电商公司,正对着阿里巴巴的西溪园区,最近一直在熟悉新的工作环境和规范,因此博客有好些时间没有更新了,在此抱歉! 在忙碌完公司的发布系统之后,逐渐接触到具体的业务.在这里主要介绍下关于css3草案的position:sticky属性的兼容. 问题 目前前端的h5有个需求,就是"当页面上的若干个标题被拖动到视口的顶部时,则显示一个被定位到视口的顶部的tab标签,可对这个tab标签进行点击导航,并在某个特殊的情况下隐藏".最简单粗暴…
经常会用到原生JS来写前端...但是原生JS的一些方法在适应各个浏览器的时候写法有的也不怎么一样的... 今天下班有点累... 就来总结一下简单的东西吧…… 备注:一下的方法都是包裹在一个EventUtil对象里面的,直接采用对象字面量定义方法了... ①添加事件方法 addHandler:function(element,type,handler){ if(element.addEventListener){//检测是否为DOM2级方法 element.addEventListener(typ…
Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法,新人新办法,只新增,少修改,莫删除3 2.3. 计划赶不上变化,永远api修改也不可能整齐划一,反而带来不兼容的风险3 3. 把握API的生命周期andAPI分级3 4. 对兼容性保持友好的api设计方法3 4.1. 细粒度的方法3 4.2. Ioc容器动态配置3 4.3. 把你的method()…
Atitit.兼具兼容性和扩展性的配置方案attilax总结 文件配置法1 Jdbc多数据源文件配置发1 Bat文件配置法1 改进的文件配置法(采用类似i18n技术) 推荐1 使用自动化pc_id的方法来自适应配置 推荐1 文件配置法 换了机子又要设置 Jdbc多数据源文件配置发 使用一个tag来标记使用的哪个配置.可以包含多配置 useTag=ati /ati2 P1_ati=000 P1_ati2=111 标记适合7个字段以内的配置. Bat文件配置法 缺点是开发的时候设置参数比较麻烦,换了…
Atitit.软件架构高扩展性and兼容性原理与概论实践attilax总结 1. 什么是可扩展的应用程序?1 2. 松耦合(ioc)2 3. 接口的思考 2 4. 单一用途&模块化,小粒度化2 5. 组合(Composition),而不是继承(inheritance) 2 6. Ocp原则开闭原则2 7. Plugin系统2 8. 流程扩展工作流系统,流程自定义2 9. Ui扩展 html53 10. 数据独立性3 11. 脚本与hotdeploy3 12. 表处理扩展if else (数据与数…
CSS对浏览器的兼容性有时让人很头疼,尤其是对于IE6这个问题多多的浏览器版本,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加DOCTYPE声明. 一.CSS 1.vertical-align:middle文字垂直居中,对于某些元素如div{width:200px;height:200px;}不会有效果,只需给div{line-height:200px;}…
在IE8及以下中,不支持aplly方法中的第二个参数是 伪数组 需要对push方法进行封装. 将 push 的判断,放入一个沙箱中: 好处:在页面加载的时候就会执行这段代码,保证了代码只会检测一次 以后的操作中直接使用调用 push 即可.jquery源码中也是这样封装的,在用jquery操作DOM元素时,不需要考虑此兼容性问题啦 var push = [].push; try { // 判断 push 是否可用 var container = document.createElement("d…
Atitit.软件兼容性原理与实践   v5 qa2.docx 1. Keyword2 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法,新人新办法,只新增,少修改,莫删除2 2.3. 计划赶不上变化,永远api修改也不可能整齐划一,反而带来不兼容的风险2 3. 兼容性的重要性与反面教材2 4. 架构and模块兼容性3 4.1. 粒度最小化,得到最好的灵活性3 4.2. 多套ui/xx模块,如何兼容3 4.3. 要是计划新的模块,老的模块可以不修改同步,推荐新…
CSS中一些兼容性问题就是浏览器兼容,而这些浏览器兼容问题主要是Ie和FF之间的争斗. CSS hack中的一些事: 我们为了让页面形成统一的效果,要针对不同的浏览器或不同版本写出对应可解析的CSS样式,所以我们就把这个针对不同浏览器/版本而写CSS的过程叫做 CSS hack. CSS hack主要有三种:IE条件注释法.CSS属性前缀法.选择器前缀法. (1)IE条件注释法,即在正常代码之外添加判别IE浏览器或对应版本的条件注释,符合条件的浏览器或者版本号才回执行里边的代码. 1 <!--[…
下面是一些Javascript的IE和Firefox(火狐)兼容性的常用例子 1. document.formName.item("itemName") 问题 说明:IE下,可以使用document.formName.item("itemName")或document.formName.elements["elementName"]; Firefox下,只能使用document.formName.elements["elementNam…
将低版本gcc编译过的程序移植到高版本GCC时, 可能会出现一些兼容性问题. 原因是, 为了适应新的标准,一些旧的语法规则被废弃了. 关于这方面的一些具体资料可从该处查询. 这里只是自己遇到的其中一个问题. 错误提示: In instantiation of ‘int t(T) [with T = int]’ required from here error: ‘f’ was not declared in this scope, and no declarations were found b…