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 生成的很好的报告,我想做的是拥有它的“文本/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');
应该指定新的内容类型,但它被忽略了。
最佳答案
除非使用 File -> Save Page As...
将其保存在客户端,否则您将必须按照您的建议进行操作,发布 $('body').html ()
到您的服务器并将其作为文本处理。
关于javascript - 保存javascript生成的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1479020/