首先功能是要求前臺導(dǎo)出word,但是前后臺是分離的,圖片存在后臺,所以就存在跨域問題。
導(dǎo)出文字都是沒有問題的(jquery.wordexport.js),但是導(dǎo)出圖片就存在問題了:
圖片是以鏈接形式存到word中,這樣如果是需要vpn的網(wǎng)站就會存在生成的word在沒有vpn的情況下打不開,有vpn的情況下必須啟用編輯才能加載出來圖片。
解決辦法:將圖片轉(zhuǎn)換成Data URL格式,再導(dǎo)出。
詳細代碼如下所示:
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";//跨域必須使用,且后臺也得設(shè)置允許跨域 dataURL=''; Img.src=url; Img.onload=function(){ //要先確保圖片完整獲取到,這是個異步事件 var canvas = document.createElement("canvas"), //創(chuàng)建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'); //轉(zhuǎn)換圖片為dataURL condataurl?condataurl(dataURL,charImg):null; //調(diào)用回調(diào)函數(shù) };} function condataurl(dataURL,charImg){ charImg.src=dataURL; //console.log(charImg);}以上這篇js生成word中圖片處理方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。
新聞熱點
疑難解答