С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/29: Рейтинг темы: голосов - 29, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 19.10.2010
Сообщений: 63

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

11.01.2011, 12:45. Показов 6109. Ответов 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
Ответ Создать тему
Новые блоги и статьи
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru