Я хочу иметь возможность создавать объекты заметок JavaScript и динамически удалять их с помощью панели навигации.
var sel = window.getSelection();
var range = sel.getRangeAt(0);
var editor = { "startContainer": range.startContainer, "startOffset": range.startOffset, "endContainer": range.endContainer, "endOffset": range.endOffset };
Затем, используя сообщение, я передал бы местоположение и сообщение функции для добавления заметок:
Notes(editor, message);
function Notes(location, note) {
this.location = location;
this.note = note;
}
Я пытаюсь понять, как на самом деле сохранять данные локально.
function addNote() {
// if (tyepof(Storage) !== "undefined"){
// if (localStorage.notes){
// localStorage.notes
// } else {
// localStorage.notes =
// }
localStorage.setItem()
}
Подходит ли localStorage? Я знаю, что sessionStorage хранит только сеанс.
Вы можете сохранить данные заметки в массиве объектов, а затем использовать localStorage для извлечения данных и перебирать каждый объект, чтобы создать заметку для каждого из них. Так что да, я бы сказал, что localStorage может быть подходящим вариантом.
Возможно, у вас есть ссылки на ресурсы с примерами этого?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы пытаетесь сохранить файлы .txt локально на компьютер? Я не верю, что в JavaScript есть такая функция, потому что это была бы огромная дыра в безопасности. Насколько я понимаю, вы можете создавать файлы cookie на локальном компьютере, но это все.
Если вам нужно экспортировать файлы, вы всегда можете использовать ASP.NET/PHP для создания файлов на сервере, тогда пользователь может щелкнуть ссылку, которая предложит вам сохранить динамически созданный файл.
На основании комментария ниже вы должны создать массив объектов.
var array = [];
array[array.length] = {name: 'NAME CONTENT', other: 'Other content', number: 1}
array[array.length] = {name: 'NAME CONTENT 2', other: 'Other content 2', number: 1}
Затем вы можете получить функцию для работы с вашим объектом, выполнив что-то вроде этого
PrintInfo(array[i]);
function PrintInfo(aSingleObject){
console.info(aSingleObject.name);
console.info(aSingleObject.other);
console.info(aSingleObject.number);
}
Чтобы удалить объекты из массива с помощью команды splice
var array = [2, 5, 9];
console.info(array)
var index = array.indexOf(5);
if (index > -1) {
array.splice(index, 1);
}
// array = [2, 9]
console.info(array);
Я пытаюсь создать локальные файлы для пользователя, возможно, хранящиеся в кеше.
У вас есть много способов сделать это. На самом деле так много, что невозможно объяснить их все. Это зависит от ваших реальных намерений. Если вам просто нужны заметки, которые вы можете потерять в корме, возможно, вам подойдет localStorage.
Но для большинства приложений вы обычно отправляете данные на сервер, который будет отвечать за их хранение. На сервере данные могут храниться в базе данных, в локальных файлах, есть много способов. Серверы могут быть Node.js (если вы хотите придерживаться только js) или любым другим языком, на котором есть возможности сервера. Практически все. Чаще всего используются Node, PHP, Python, Java и другие. Вы должны подготовить определенный URL-адрес для получения сообщения с данными, которые необходимо сохранить, а затем заставить клиента отправить с ним запрос ajax на этот URL-адрес. в этом вопросе вы можете получить несколько примеров того, как начать это делать:
Базовая отправка / получение Ajax с помощью node.js
часть сохранения сервера зависит от вас :)
редактировать
вот небольшой учебник по localStorage
https://www.taniarascia.com/how-to-use-local-storage-with-javascript/
просто помните, что каждый раз, когда вы перезагружаете страницу, вы теряете все. Чтобы сохранить данные, вам необходимо отправить их на сервер.
Другое дело: для этого не нужно покупать выделенный сервер. Вы можете реализовать сервер на своем собственном компьютере. Это относительно простая задача. Не все так сложно. Я советую вам взглянуть на вопрос SO выше о базовой отправке / получении ajax, прежде чем вы исключите это.
Я надеюсь временно сохранить объекты заметок с помощью localStorage. Поскольку это всего лишь небольшой независимый проект, я пока не хочу иметь выделенный сервер. Есть ли способ сохранить объект в localStorage?
Спасибо! Я посмотрю по предоставленным ссылкам!
Вот быстрый способ сгенерировать несколько элементов из вызова localStorage.getItem(), который, возможно, также может помочь вам здесь вместе с ответом Нельсона. Нажмите кнопку в скрипте, и вы увидите, как код захватывает объекты localStorage и использует их для создания простого <li>'s.
Рабочий пример: http://jsfiddle.net/kfrvdnux/
Пример кода:
HTML
<button id='save'>Click the save button...</button>
<div id='content'></div>
JS
var content = document.getElementById('content'),
save = document.getElementById('save'),
output = '<ul>',
animals = [{
name: 'bob',
type: 'dog'
}, {
name: 'fred',
type: 'lizard'
}];
// set on load for testing
localStorage.setItem('animals', JSON.stringify(animals));
// grab localStorage data on click and create a list
save.addEventListener('click', function() {
var ls = JSON.parse(localStorage.getItem('animals'));
for (var i = 0; i < ls.length; i++) {
output += '<li>' + ls[i].name + ', ' + ls[i].type + '</li>';
}
output += '</ul>';
content.innerHTML = output;
});
Спасибо! Это действительно помогает!
На основе моего проекта codepen codepen.io/Zwienclaw/pen/wxGKEQ