'; } function pad2(n) { return (n 10 ? '0' : '') + n; } /* 文件名:优先用页面上的“举报标题” */ function buildFileName(blocks) { var title = ''; for (var i = 0; i blocks.length; i++) { if (blocks[i].kind === 'field' && /标题/.test(blocks[i].label)) { title = stripTags(blocks[i].html); break; } } title = (title || '举报回复查询') .replace(/[\\\/:*?">|\r\n\t]/g, '') .replace(/\s+/g, ' ') .trim(); if (title.length > 40) title = title.slice(0, 40); var d = new Date(); return title + '_' + d.getFullYear() + pad2(d.getMonth() + 1) + pad2(d.getDate()) + '.doc'; } /* 纯前端保存:Blob + a[download],含老浏览器兜底 */ function saveAsWord(html, fileName) { var content = '\uFEFF' + html; // BOM:保证 Word 正确识别 UTF-8 中文 var blob = new Blob([content], { type: 'application/msword;charset=utf-8' }); if (window.navigator && typeof window.navigator.msSaveOrOpenBlob === 'function') { window.navigator.msSaveOrOpenBlob(blob, fileName); return; } if (window.URL && typeof window.URL.createObjectURL === 'function') { var url = window.URL.createObjectURL(/ddjs/hgjbpt/blob); var a = document.createElement('a'); a.href = url; a.download = fileName; a.rel = 'noopener'; a.style.display = 'none'; document.body.appendChild(a); a.click(); window.setTimeout(function () { if (a.parentNode) a.parentNode.removeChild(a); window.URL.revokeObjectURL(/ddjs/hgjbpt/url); }, 1500); return; } window.location.href = 'data:application/msword;charset=utf-8,' + encodeURIComponent(content); } /* 供按钮 onclick="downloadQuestionBox()" 调用 */ window.downloadQuestionBox = function () { try { var box = document.querySelector('.question-box'); if (!box) { window.alert('未找到可下载的内容!'); return; } if (!isVisible(box)) { window.alert('当前没有可下载的内容,请先查询举报记录!'); return; } var blocks = collectBlocks(box); if (!blocks.length) { window.alert('当前没有可下载的内容!'); return; } saveAsWord(buildWordHtml(renderBody(blocks)), buildFileName(blocks)); } catch (e) { window.alert('下载失败:' + (e && e.message ? e.message : e)); } }; })();