IE由于其特殊性,很多将页面导出为静态文件的方法对其并不适用,特别是当页面内容较多且复杂(如包含图片等)的时候,大多数情况下只能利用IE的原生态js代码进行导出,其具体内容如下:
页面上的代码为:
<input type=button class="crm-btn-blue" value='导出' οnclick="AllAreaWord()">
<div id="Print">
<!-- 这里面放你需要转换为word的内容 -->
</div>
<script type="text/javascript">
function AllAreaWord() {
var oWD = new ActiveXObject("Word.Application");
var oDC = oWD.Documents.Add("",0,1);
var oRange =oDC.Range(0,1);
var sel = document.body.createTextRange();
//此“Print”为id名
sel.moveToElementText(Print);
sel.select();
sel.execCommand("Copy");
oRange.Paste();
oWD.Application.Visible = true;
//关闭当前窗口
window.close();
}
</script>
点击"导出"按钮后,将id为"Print"的div中的内容导出到word中,此时会自动将word文件打开,"另存为"需自己再次执行。
值得注意的是,如果里面有图片的话,图片的路径必须是服务器项目的目录下的具体文件路径,例如你的项目叫"test",在test下有一张"test.jpg",则路径为"test/test.jpg"。如果你的图片访问方式是利用servlet等进行访问的,请务必转换成具体的文件路径,否则转换出来的word的图片位置为空。