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

Следует указать новый тип контента, но он игнорируется.

Ответы на вопрос(12)

Ваш ответ на вопрос