Как заставить подпрограмму JQuery записывать в текстовый файл на рабочем столе компьютера?

0

Я хочу создать подпрограмму JQuery, которая может записывать информацию (добавить) в текстовый файл, который существует или не существует. Если файл не существует, он должен создать файл, и если он это сделает, он должен либо добавить, либо начать запись новых данных в файл. Я думаю, что append будет лучшим выбором для файлового регистратора. Поэтому он должен добавить данные в файл.

Я нашел этот код в Интернете и пытаюсь его обработать, чтобы использовать его на своей странице для записи информации в простой текстовый файл.

Вопрос: Как я могу сделать следующий код в файле для загрузки?

Ниже приведен новый код и как я прочитал страницу, которая была указана в комментариях о том, как должен работать регистратор в скрипте Java. Код не работает, и я не уверен, почему.

Я не совсем уверен, как работает загрузка, но если я могу просто заставить логгер работать, я пока буду счастлив.

Код:

<!DOCTYPE html>
<html>
<head>
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
    <script src="log4moz.js">
</head>

<script>
getLocalDirectory : function() {
  let directoryService = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties);
  // this is a reference to the profile dir (ProfD) now.
  let localDir = directoryService.get("ProfD", Ci.nsIFile);
  localDir.append("XULSchool");

  if (!localDir.exists() || !localDir.isDirectory()) {
    // read and write permissions to owner and group, read-only for others.
    localDir.create(Ci.nsIFile.DIRECTORY_TYPE, 0774);
  }

  return localDir;
}

let myFile = XULSchool.getLocalDirectory();
myFile.append("someFile.txt");

let formatter = new Log4Moz.BasicFormatter();
let root      = Log4Moz.repository.rootLogger;
let logFile   = this.getLocalDirectory(); // remember this?
let appender;

logFile.append("log.txt");
root.level = Log4Moz.Level["All"];

appender       = new Log4Moz.RotatingFileAppender(logFile, formatter);
appender.level = Log4Moz.Level["All"];
root.addAppender(appender);

this._logger       = Log4Moz.repository.getLogger("XULSchool.SomeObject");
this._logger.level = Log4Moz.Level["All"];
this._logger.fatal("This is a fatal message.");
this._logger.error("This is an error message.");
this._logger.warn("This is a warning message.");
this._logger.info("This is an info message.");
this._logger.config("This is a config message.");
this._logger.debug("This is a debug message.");
this._logger.trace("This is a trace message.");

</script>

<body>

<form id="addnew">
    <input type="text"   class="A">
    <input type="text"   class="B">
    <input type="submit" value="Add">
</form>

</body>
</html>
  • 1
    Представьте себе мир, в котором любой веб-сайт может редактировать файлы на вашем компьютере.
  • 0
    Это нарушение безопасности, что веб-сайт может войти в пользовательскую файловую систему, для этой проблемы они изобрели localStorage и indexedDb,
Показать ещё 1 комментарий
Теги:

1 ответ

5
Лучший ответ

@Smeegs говорит это красиво

Представьте себе мир, где любой веб-сайт может редактировать файлы на вашем компьютере

JavaScript (или jQuery) не может касаться файловой системы пользователя.

Даже если вы найдете какую-то взломанную вещь, которая работает через ActiveXObject, вы не должны пытаться это сделать. Поддержка кросс-браузера будет очень узкой для этой функции.

Если вы хотите записать файл, просто укажите пользователю загрузку.

Если это всего лишь средство чтения/записи каких-либо данных, посмотрите на localstorage.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню