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