0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63

Сохранение текущего состояния DOM

11.01.2011, 12:45. Показов 5974. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые, а как можно сделать такую штуку: в открытом документе HTML пользователь чего-то там отредактировал (посредством JavaScript и свойств объектов, правда он этих подробностей конечно не знает) и жмет кнопку 'Сохранить' (либо на странице, либо в браузере, если это возможно) при этом документ сохраняется на диск, причем текст файла соответсвует состоянию объектов в памяти на момент сохранения.

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

Рассмотрю любые извратные варианты в рамках JavaScript

Спасибо.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.01.2011, 12:45
Ответы с готовыми решениями:

Смена надписи на кнопке стоп/пуск в зависимости от текущего состояния часов
Вот код остановки и запуска часов. как сделать кнопку, надпись на которой будет меняться в зависимости от текущего состояния часов? ...

Сохранение состояния checkbox в localStorage
Вот у меня есть несколько флажков(ну штук 30 допустим): <input type="checkbox" id="ch1" name="ch1"...

Сохранение текущего файла, загруженного в браузер, на локальном диске
Здравствуйте, ВСЕ, Можно ли сохраненить текущий файл, загруженного в браузере на локальном диске, по указанному пути? Спасибо

12
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 33
11.01.2011, 13:23
Мот я чего-то не понял, а
чем те не подойдет создавать в памяти
xml файл и сохранять его на диск,
а потом пытаться подгрузить?
0
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
11.01.2011, 13:59  [ТС]
Не хотелось-бы связываться с XML и надо чтобы файл был один. Чтобы не объяснять про разные файлы. Чтобы все было предеольно просто: файл, в файле кнопка, нажал-сохранил, закрыл, открыл, а там все как перед закрытием.
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 33
11.01.2011, 14:35
Как я понял ты используешь DOM.
Тада просто дописывай свой xml из
памяти в конец html(после body)
0
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
11.01.2011, 14:46  [ТС]
как это сделать?
Code
1
document.write(); ?
попробовал, почему-то затирает весь файл напрочь
0
0 / 0 / 0
Регистрация: 10.01.2011
Сообщений: 33
11.01.2011, 15:00
Не, изврат, так изврат:
Итак:
JavaScript
1
2
3
4
5
6
7
 var XMLDocument = new ActiveXObject('MSXML2.DOMDocument.3.0');
 XMLDocument.validateOnParse = true;
      XMLDocument.load('Твой файл');
      if (XMLDocument.parseError.errorCode !=0) {
       HTMLtarget.innerHTML ='Error in input XML';
       return false;
      }
Все - у тя твой файл в Dom.

Создаешь новый узел - var newNode = XMLDocument.createNode(1, 'savedData', '');
Набиваешь его инфой - можешь тоже обрамлять все тэгами(cool)
и коннектишь всю Daty к ентому элементу. А мотом этот элемент присобачиваешь к своему файлу.
Только твоя html - должна быть xml файлом, что есть Good
0
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
11.01.2011, 15:43  [ТС]
Ага,интересно, а без ActiveX можно обойтись?
0
0 / 0 / 2
Регистрация: 24.06.2010
Сообщений: 174
13.01.2011, 16:37
Ты так бы сразу и сказал, что тебя интересует возможность локальной работы из под браузера. Тогда лучше всего реализовать интерфейс в HTA (все вопросы к MSDN), а данные локально храни в чем хочешь: хоть в xml, хоть txt с разделителями. Но, думаю, в любом случае без ActiveX не обойтись хотя бы для реализации FileSystemObject.
0
4 / 4 / 3
Регистрация: 25.05.2009
Сообщений: 2,576
14.01.2011, 21:29
я увидел 'между строк' ещё один вопрос: какой технологией решать те или иные задачи!
Сразу же и отвечу на него.
Если Вам нужно сохранить что-то со своего сайта, на месяц об этом забыть, а потом вывести обратно в броузер - здесь и думать нечего, клиентские скрипты для этого не предназначены хоть и умеют работать с каталогами у пользователя на машине. Такие скрипты чаще всего используются в сетевых сайтах, там где все всем верят и изначально безопасность настроена по-минимуму. Нам же, с нашей задачей нужен серверный скрипт, однозначно!
0
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
24.01.2011, 15:58  [ТС]
Я хочу чего-то вроде этого:
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>
<html>
<head>
<title>TEST</title>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
<script defer language='JavaScript'>
 
     function prepare_for_save()
     {
      var newwin = window.open('','');
      newwin.document.open();
      newwin.document.write('<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>');
      newwin.document.write(document.childNodes.item(1).outerHTML);
      newwin.document.close();
     }
 
     if (opener != null)
     {
      opener.document.open();
      opener.document.write('<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'>');
      opener.document.write(document.childNodes.item(1).outerHTML);
      opener.document.close();
      window.close();
     }
   
</script>
</head>
 
<body>
     <span>Чекбокс 1</span><input type='checkbox'>
     
 
     <span>Чекбокс 1</span><input type='checkbox'>
     
 
     <input type='button' value='Подготовить к сохранению' onclick='prepare_for_save();'>
</body>
</html>
Только без глюков.
А то получается вот что: нажимаем кнопку 'Подготовить к сохранению', если глянуть в source HTML все вроде нормально - текст изменился. А вот если сохранить (через функциональность броузера, безо всяких там файлсистемных ActiveX-ов), то в файл записывается какая-то дрянь китайская
Вот если бы не эта китайская дрянь, то я был бы полностью удовлетворен
0
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 7
10.02.2011, 08:42
У меня таже проблема. Сейчас активно с ней борюсь. Единственное решение, которое нашел - это в IE в диалоге Save As установить тип документа HTML only - тогда сохраняется именно тот код, который кажется в Source.
0
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63
10.02.2011, 10:20  [ТС]
Нда... Неудобно и красотень всякую жалко. А два раза сохранять слишком извратно. Надеюсь мы дождемся патча к MSIE. Когда-нибудь.
0
0 / 0 / 0
Регистрация: 09.02.2011
Сообщений: 7
10.02.2011, 12:00
WE DID IT!

<input type='button' name='Button' onClick='document.execCommand('+''SaveAs ''+');' value=' Сохранить '>

- решение проблемы. Сохраняет как миленький!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.02.2011, 12:00
Помогаю со студенческими работами здесь

HTML DOM как с использованием Javascript создать узлы DOM
Доброго времени суток. хочу через Javascript по событию onclick добавить в html документ что то вроде: &lt;div&gt;hello world&lt;/div&gt;...

Написать скрипт, рекурсивно обходящий дерево DOM страницы dom.html, начиная от корня DOM
Написать скрипт на языке JavaScript, рекурсивно обходящий дерево DOM страницы dom.html, начиная от корня DOM (объект document). ...

Сохранение состояния
Вот скажем есть блок:#div13, и я обрабатываю его hide(1500);(т.е. скрываю).И вот:Скажем пользователь скрыл этот блок, как сделать так,...

Сохранение состояния чекбоксов в Local Storage
Помогите решить проблему . Нужно записать данные в Local Storage по отмеченным чекбоксам. $(document).on('turbolinks:load', function()...

Сохранение состояния элемента измененного JavaScript при обновлении страницы?
Как сохранить состояние элемента измененного JavaScript при обновлении страницы?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

Новые блоги и статьи
Angular vs Svelte - что лучше?
Reangularity 09.07.2025
Сегодня рынок разделился на несколько четких категорий: тяжеловесы корпоративного уровня (Angular), гибкие универсалы (React), прогрессивные решения (Vue) и новая волна компилируемых фреймворков. . .
Code First и Database First в Entity Framework
UnmanagedCoder 09.07.2025
Entity Framework дает нам свободу выбора, предлагая как Code First, так и Database First подходы. Но эта свобода порождает вечный вопрос — какой подход выбрать? Entity Framework — это. . .
Как использовать Bluetooth-модуль HC-05 с Arduino
Wired 08.07.2025
Bluetooth - это технология, созданная чтобы заменить кабельные соединения. Обычно ее используют для связи небольших устройств: мобильных телефонов, ноутбуков, наушников и т. д. Работает она на частоте. . .
Руководство по структурам данных Python
AI_Generated 08.07.2025
Я отчетливо помню свои первые серьезные проекты на Python - я писал код, он работал, заказчики были относительно довольны. Но однажды мой наставник, взглянув на мою реализацию поиска по огромному. . .
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах
Programma_Boinc 08.07.2025
Тестирование энергоэффективности и скорости вычислений видеокарт в BOINC проектах Опубликовано: 07. 07. 2025 Рубрика: Uncategorized Автор: AlexA Статья размещается на сайте с разрешения. . .
Раскрываем внутренние механики Android с помощью контекста и манифеста
mobDevWorks 07.07.2025
Каждый Android-разработчик сталкивается с Context и манифестом буквально в первый день работы. Но много ли мы задумываемся о том, что скрывается за этими обыденными элементами? Я, честно говоря,. . .
API на базе FastAPI с Python за пару минут
AI_Generated 07.07.2025
FastAPI - это относительно молодой фреймворк для создания веб-API, который за короткое время заработал бешеную популярность в Python-сообществе. И не зря. Я помню, как впервые запустил приложение на. . .
Основы WebGL. Раскрашивание вершин с помощью VBO
8Observer8 05.07.2025
На русском https:/ / vkvideo. ru/ video-231374465_456239020 На английском https:/ / www. youtube. com/ watch?v=oskqtCrWns0 Исходники примера:
Мониторинг микросервисов с OpenTelemetry в Kubernetes
Mr. Docker 04.07.2025
Проблема наблюдаемости (observability) в Kubernetes - это не просто вопрос сбора логов или метрик. Это целый комплекс вызовов, которые возникают из-за самой природы контейнеризации и оркестрации. К. . .
Проблемы с Kotlin и Wasm при создании игры
GameUnited 03.07.2025
В современном мире разработки игр выбор технологии - это зачастую балансирование между удобством разработки, переносимостью и производительностью. Когда я решил создать свою первую веб-игру, мой. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru