Сохраните документ, сгенерированный javascript
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');
Следует указать новый тип контента, но он игнорируется.