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 を必要としないもの) です。
したがって、ページの最後にボタンを追加します:「ブラバとして保存」すると、ドキュメントはテキスト/プレーンバージョンを表示するはずです。
私が今考えることができる唯一の方法は、コンテンツを次のような 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');
新しいコンテンツ タイプを指定する必要がありますが、無視されています。