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, что я хотел бы сделать, это есть версия «текст/html» его (я имею в виду, то, что не требует JavaScript)
Поэтому в конце страницы я бы добавил кнопку «Сохранить как blaba», и документ должен отобразить текстовую/обычную версию.
Единственный способ, которым я мог думать прямо сейчас, чтобы записать содержимое в яваскрипте переменного как:
var content = document.toString(); // or something magic like that.
// post it to the server
Затем опубликовать это значение на сервер, и есть сервер Представь, что значение.
<%=request.getParameter("content-text")%>
Но выглядит очень сложно.
Есть ли альтернатива?
EDIT
Хорошо, я почти получил его. Теперь мне просто нужно новое окно всплывал поэтому вариант «вы бы хотели сохранить это показывает»
Это то, что я получил до сих пор
<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');
Должен указывать новый тип контента, но он игнорируется.
Это выглядит очень многообещающим. Я пробовал в ie7, и я получаю следующую ошибку. Я попробую его с помощью ie6 (моя цель) через некоторое время и приведу вам результат: http://img11.imageshack.us/img11/8444/capturatx.png Сообщение об ошибке: * Сервер распыления не смог создать объект * – OscarRyz
Этот код отлично работает, если он запущен локально [без серверной среды]. Чтобы он работал в среде «server», вам необходимо изменить некоторые параметры безопасности, чтобы создать ActiveXObject в системе ur-сервера. Хит-инструменты> Свойства обозревателя> Вкладка «Безопасность»> «Пользовательский уровень»> убедитесь, что выбрано «приглашение» для «Загрузка подписанных и неподписанных элементов управления ActiveX». Затем вы получите приглашение при запуске кода. Если это не помогло, попробуйте изменить другие соответствующие параметры activeX. Но убедитесь, что у вас есть обновленная антивирусная программа b4, изменяющая параметры безопасности, если в случае чего-то странного. : p – chong
Я запустил это как локальный файл html, см. изображение: http://img11.imageshack.us/img11/8444/capturatx.png – OscarRyz