js实现word生成书签_js生成word中图片处理方法

首先功能是要求前台导出word,但是前后台是分离的,图片存在后台,所以就存在跨域问题。

导出文字都是没有问题的(jquery.wordexport.js),但是导出图片就存在问题了:

图片是以链接形式存到word中,这样如果是需要vpn的网站就会存在生成的word在没有vpn的情况下打不开,有vpn的情况下必须启用编辑才能加载出来图片。

解决办法:将图片转换成Data URL格式,再导出。

详细代码如下所示:

function changeImgToDataurl(){

var charImg = document.all("exportdom").getElementsByTagName("img");

var imgURLs = "";

for (var i = 0; i < charImg.length; i++) {

var imgURL = charImg[i].currentSrc;

getBase64(imgURL,charImg[i]);

}

}

function getBase64(url,charImg){

var Img = new Image();

Img.crossOrigin = "Anonymous";//跨域必须使用,且后台也得设置允许跨域

dataURL='';

Img.src=url;

Img.οnlοad=function(){ //要先确保图片完整获取到,这是个异步事件

var canvas = document.createElement("canvas"), //创建canvas元素

width=Img.width, //确保canvas的尺寸和图片一样

height=Img.height;

canvas.width=width;

canvas.height=height;

canvas.getContext("2d").drawImage(Img,0,0,width,height); //将图片绘制到canvas中

dataURL=canvas.toDataURL('image/jpg'); //转换图片为dataURL

condataurl?condataurl(dataURL,charImg):null; //调用回调函数

};

}

function condataurl(dataURL,charImg){

charImg.src=dataURL;

//console.log(charImg);

}

以上这篇js生成word中图片处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值