万恶之源的IE浏览器下载pdf的兼容
1、IE浏览器下载⽂件
  location = '⽂件路径'  // 简单粗暴好⽤的下载⽅式(如果是pdf⽂件以及有pdf插件,会直接预览,如果不想预览可以参照下⾯的⽅法)
2、⽂件流下载(IE10, IE11)
  先是浏览器的判断
  (window.ActiveXObject || "ActiveXObject" in window)  true 为IE浏览器,false 为⾮IE浏览器
  document.documentMode 这个⽅法很好⽤,专门判断IE浏览器的版本返回值类型为数字 8 9 10 11等
var url = res;
var xhr = new XMLHttpRequest();
xhr.open('get', url, true);
// 定义请求完成的处理函数,请求前也可以增加加载框/禁⽤下载按钮逻辑
// 请求完成
if(this.status === 200) {
// 返回200
var blob = sponse;
window.navigator.msSaveBlob(blob, '⽂件.pdf'); // 可⾃定义⽂件名
}
}
// 发送ajax请求
xhr.send();
3、PDF.js(我只到了最新的版本,只能在IE11上使⽤,如果有低版本IE都可⽤的请转我⼀份,谢谢)
4、如果业务需要pdf预览,除了PDF.js外还可以通过判断⽤户是否下载Adobe Reader PDF,直接⽤这个插件预览(IE⾃⾝是没有带pdf预览插件的,很坑)
// 判断是否有PDF阅读器(true为有pdf预览插件,false表⽰没有)如果有pdf插件,可以直接使⽤location = '⽂件路径' 会⾃动预览
function isAcrobatPluginInstall () {
//下⾯代码都是处理IE浏览器的情况
if ((window.ActiveXObject) || (navigator.userAgent.indexOf("Trident") > -1)) {
for(x = 2; x < 10; x++) {
try {
  oAcro = eval("new ActiveXObject('PDF.PdfCtrl." + x + "');");
  if(oAcro) {
  return true;
  }ie浏览器下载安装
} catch(e) {}
}
try {
oAcro4 = new ActiveXObject('PDF.PdfCtrl.1');
if(oAcro4)
return true;
} catch(e) {}
try {
oAcro7 = new ActiveXObject('AcroPDF.PDF.1');
if(oAcro7)
return true;
} catch(e) {}
}else{
//chrome和FF、safrai等其他浏览器
return true;
}
};