Javascript 可以操作浏览器正在显示的文档,因此如下:
<script>
document.write("<table><tr><td>Hola</td><td>Adios</td></tr></table>");
</script>
将使浏览器显示一个表格,就像它是原始 HTML 文档一样:
<table>
<tr>
<td>Hola</td>
<td>Adios</td>
</tr>
</table>
有没有办法可以保存/提供此文档内容?
目前我们有一些使用 Ext-js 生成的漂亮报告,我想做的是拥有它的“text/html”版本(我的意思是,不需要 javascript 的东西)
所以在页面的末尾我会添加一个按钮:“另存为 blaba”,文档应该显示文本/纯文本版本。
我现在能想到的唯一方法是将内容写入 javascript 变量,例如:
var content = document.toString(); // or something magic like that.
// post it to the server
然后将该值发布到服务器,并让服务器显示该值。
<%=request.getParameter("content-text")%>
但看起来非常棘手。
有替代方案吗?
编辑
好的,我几乎明白了。现在我只需要弹出新窗口,以便显示“您要保存它吗”选项
这是我到目前为止所拥有的
<script>
document.write("<div id='content'><table><tr><td>Hola</td><td>Adios</td></tr></table></div>");
function saveAs(){
var sMarkup = document.getElementById('content').innerHTML;
var oNewDoc = document.open('application/vnd.ms-excel');
oNewDoc.write( sMarkup + "<hr>" );
oNewDoc.close();
}
</script>
<input type="button" value="Save as" onClick="saveAs()"/>
该行:
var oNewDoc = document.open('application/vnd.ms-excel');
应该指定新的内容类型,但它被忽略了。