7 ответов:
нет, JavaScript не имеет доступа к написанию файлов, так как это было бы огромным риском для безопасности, мягко говоря. Однако, если вы хотите получить/сохранить информацию на стороне сервера, вы можете, конечно, сделать Ajax-вызов PHP/ASP/Python/etc. скрипт, который затем может получить / сохранить данные на сервере. Если вы имели в виду хранить данные на клиентской машине, это невозможно только с JavaScript. Я подозреваю, что Flash / Java может быть в состоянии, но я не уверен.
Если вы только пытаетесь сохранить небольшое количество информации за ненадежный период времени, касающейся конкретного пользователя, я думаю, вы хотите Web Storage API или печенье. Я не уверен, из вашего вопроса, Что вы пытаетесь достичь, хотя.
как HTML5, так и Google Gears добавляют локальные возможности хранения, в основном с помощью встроенного API SQLite.
эта функция Javascript представляет диалоговое окно "Сохранить как" для пользователя, который запускает эту функцию через свой браузер. Пользователь нажимает кнопку ОК, и файл сохраняется на стороне сервера.
это раньше работало со всеми браузерами, но теперь работает только с IE. Следующий код представляет собой угрозу безопасности, если javascript может сохранять данные на стороне сервера, хакер межсайтового скриптинга может владеть вашими серверами. Firefox и Chrome заткнули отверстие, но IE еще не сделал так.
// content is the data (a string) you'll write to file. // filename is a string filename to write to on server side. // This function uses iFrame as a buffer, it fills it up with your content // and prompts the user to save it out. function save_content_to_file(content, filename){ var dlg = false; with(document){ ir=createElement('iframe'); ir.id='ifr'; ir.location='about.blank'; ir.style.display='none'; body.appendChild(ir); with(getElementById('ifr').contentWindow.document){ open("text/plain", "replace"); charset = "utf-8"; write(content); close(); document.charset = "utf-8"; dlg = execCommand('SaveAs', false, filename); } body.removeChild(ir); } return dlg; }вызовите функцию следующим образом:
msg = "I am the president of tautology club."; save_content_to_file(msg, "C:\test");
вам нужно будет обрабатывать доступ к файлам через веб-язык программирования, например PHP или ASP.net.
чтобы настроить это, вы бы:
создайте скрипт, который обрабатывает чтение и запись файла. Это должно быть видно в браузере.
отправить jQuery ajax запросы к этому скрипту, который либо записывать данные или читать данные. Вам нужно будет передать всю информацию для чтения / записи через параметры запроса. Вы можете подробнее об этом читайте в документации jQuery ajax.
убедитесь, что вы очистить все данные, которые вы храните, так как это может быть угрозой безопасности. Однако это действительно просто стандартное хранилище данных с плоским файлом, и это не обязательно так необычно.
Как указал Паоло, нет способа напрямую читать/записывать в файл через jQuery или любой другой тип javascript.
куки - это ваш лучший выбор. Ищите плагин jQuery cookie.
файлы cookies предназначены для такого рода ситуации -- вы хотите сохранить некоторую информацию об этом клиенте на стороне клиента. Просто имейте в виду, что файлы cookie передаются туда и обратно по каждому веб-запросу, поэтому вы не можете хранить там большие объемы данных. Но просто простой ответ на вопрос должен быть в порядке.
Если вы хотите сделать это без кучки обработки на стороне сервера на странице, возможно, было бы целесообразно выдуть текстовое значение в скрытое поле (используя PHP). Затем вы можете использовать jQuery для обработки скрытого значения поля.
все, что плавает на вашей лодке:)
Comments