Создать текстовый файл из ввода HTML-формы с помощью браузера (на стороне клиента) - PullRequest
3 голосов
/ 29 июля 2011

У меня есть HTML-сайт с формой в нем, и я хочу, чтобы пользователь мог создавать текстовый / XML-файл в зависимости от ввода.Но я не хочу не настраивать веб-сервер только для этой задачи.

Есть ли хороший способ сделать это, например, с помощью Javascript?Я думаю, что вы не можете создавать файлы с помощью Javascript, но, возможно, создайте URL-адрес данных и передайте текст, чтобы пользователь мог сохранить его в файл?

Или есть другой способ выполнить эту простую задачу без веб-сервера

Ответы [ 2 ]

1 голос
/ 01 августа 2011

Решил как-то. Я создаю URL данных data:text/xml;charset=utf-8,, за которым следует XML.

function createXML() {
    var XML = 'data:text/xml;charset=utf-8,<MainNode>';
    var elements = document.getElementsByTagName('input'),i;
    for (i in elements) {
        if (elements[i].checked == true) {
            XML += elements[i].value;
        }
    }
    XML += '</MainNode>';
    window.open(XML);
}

Так что URL выглядит как data:text/xml;charset=utf-8,<MainNode><SubNode>...</SubNode>...</MainNode>

К сожалению, это не работает для меня в Chromium (Chrome) и в Firefox. Он просто отображает XML вместо отображения диалога сохранения. Но я думаю, что это из-за моих настроек и, по крайней мере, вы можете сохранить его в виде XML-файла вручную.

0 голосов
/ 29 июля 2011

Я не пробовал это, но оно должно работать.

  1. После получения данных формы система вызовет страницу A.
  2. страница A будет иметь javascript, который получает строки запроса и соответственно строит страницу.
  3. После завершения построения страницы пользователь может сохранить текущую страницу со следующим утверждением в javascript

    document.execCommand ( 'Примерчик', правда, 'file.html');

...