首先功能是要求前臺(tái)導(dǎo)出word,但是前后臺(tái)是分離的,圖片存在后臺(tái),所以就存在跨域問(wèn)題。
導(dǎo)出文字都是沒(méi)有問(wèn)題的(jquery.wordexport.js),但是導(dǎo)出圖片就存在問(wèn)題了:
圖片是以鏈接形式存到word中,這樣如果是需要vpn的網(wǎng)站就會(huì)存在生成的word在沒(méi)有vpn的情況下打不開,有vpn的情況下必須啟用編輯才能加載出來(lái)圖片。
解決辦法:將圖片轉(zhuǎn)換成Data URL格式,再導(dǎo)出。
詳細(xì)代碼如下所示:
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";//跨域必須使用,且后臺(tái)也得設(shè)置允許跨域 dataURL=''; Img.src=url; Img.onload=function(){ //要先確保圖片完整獲取到,這是個(gè)異步事件 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); }
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。