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

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

11.01.2011, 12:45. Показов 6101. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru