话说ie8是真的与众不同,之前被提实现一个需求,导出页面内容为word然后就运用了jquery.wordexport.js、写完才发现不兼容ie8、因为用到了Blob类型,谷歌用着好好地,到了ie就不行了,连ie10都疯狂报错,最后摸索了一下,IE生成文档是用ActiveX,和其他浏览器不一样,ActiveX会被系统internet拦截,所以需要手动设置。
百度的时候发现了好多小伙伴都在问这个问题,却没有什么合适的解决办法,所以在这里记录一下
下面放代码~
// An highlighted block
function exportToWord(controlId) {
var control=document.getElementById(controlId)
try {
var oWD = new ActiveXObject("Word.Application");
var oDC = oWD.Documents.Add("", 0, 1);
var oRange = oDC.Range(0, 1);
var sel = document.body.createTextRange();
try {
sel.moveToElementText(control);
location.replace(location)
// t.remove()
} catch (notE) {
alert("导出数据失败,没有数据可以导出。");
location.replace(location)
return;
}
sel.select();
sel.execCommand("Copy");
oRange.Paste();
oWD.Application.Visible = true;
}
catch (e) {
alert("导出数据失败,需要在客户机器安装Microsoft Office Word(不限版本),将当前站点加入信任站点,在internet安全选项中允许在IE中运行ActiveX控件。");
location.replace(location)
try { oWD.Quit(); } catch (ex) { }
}
}
html
// An highlighted block
<input type="button" value="导出到WORD" onclick="return exportToWord('TestDiv')" />
<div id="TestDiv">
此处放需要转换成word的内容
</div>
ps:这样导出word格式为web视图模式,目前参考网上代码却行不通,知道的大佬麻烦告知一声~ლ(❛◡❛✿)ლ