本文為博主原創,轉載請注明出處:
在應用POI進行導出時,先應用POI進行數據封裝,將數據封裝到Excel中,然后在進行download下載操作,從而完成
POI導出操作。由於在download操作時,會進行區別瀏覽器,並分別做適應才能導出。由於做的適應比較少,導致在IE瀏覽器
導出時,一直導出失敗。
最終發現在js中沒有對IE進行識別適應,對其方法應用如下:
function getBrowserInfo() { var Sys = {}; var ua = navigator.userAgent.toLowerCase(); var re = /(msie|firefox|chrome|opera|version).*?([\d.]+)/; var m = ua.match(re); try{ Sys.browser = m[1].replace(/version/, "'safari"); Sys.ver = m[2]; }catch(e) { console.log("getBrowserInfo fail.") } return Sys; }
以上方法在js中會進行識別,並返回對應的瀏覽器類型。
修改以后的方法如下:
function myBrowser() { var userAgent = navigator.userAgent; //取得瀏覽器的userAgent字符串 var isOpera = userAgent.indexOf("Opera") > -1; //判斷是否Opera瀏覽器 var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1 && !isOpera; //判斷是否IE瀏覽器 var isEdge = userAgent.indexOf("Edge") > -1; //判斷是否IE的Edge瀏覽器 var isFF = userAgent.indexOf("Firefox") > -1; //判斷是否Firefox瀏覽器 var isSafari = userAgent.indexOf("Safari") > -1 && userAgent.indexOf("Chrome") == -1; //判斷是否Safari瀏覽器 var isChrome = userAgent.indexOf("Chrome") > -1 && userAgent.indexOf("Safari") > -1; //判斷Chrome瀏覽器 if (isIE) { var reIE = new RegExp("MSIE (\\d+\\.\\d+);"); reIE.test(userAgent); var fIEVersion = parseFloat(RegExp["$1"]); if (fIEVersion == 7) { return "IE7"; } else if (fIEVersion == 8) { return "IE8"; } else if (fIEVersion == 9) { return "IE9"; } else if (fIEVersion == 10) { return "IE10"; } else if (fIEVersion == 11) { return "IE11"; } else { return "0"; }//IE版本過低 return "IE"; } if (isOpera) { return "Opera"; } if (isEdge) { return "Edge"; } if (isFF) { return "FF"; } if (isSafari) { return "Safari"; } if (isChrome) { return "Chrome"; } }
之后在后台進行瀏覽器進行適應,之后就可以導出成功了。
