2013-03-23 2 views
2

я увидел содержимое редактируемого URL-адрес трюк из https://coderwall.com/p/lhsrcqкак сохранить <HTML contenteditable> содержимое в виде текстового файла

data:text/html, <html contenteditable> 

это позволяет использовать браузер в качестве текстового файла, но содержимое теряется при сохранении страницы HTML ,

я сделал строку, которая может быть использована в качестве букмарклет, который позволяет сохранить то, что вы набирали путем создания IFRAME с СРК, как

data: Content-type: application/octet-stream 

плюс содержимое contenteditable элемента в браузере URL

вы можете увидеть мой код в http://pastebin.com/4z8tttuA затем скопировать его в свой браузер URL

мои проблемы

  1. все пробелы превращаются в ' ', и возврат каретки исчезает. это когда мой контент редактируемый элемент является div. я попробовал с текстовым полем также не работает

  2. имени файл что-то другое, чем «загрузить» (который позже станет скачать (1), скачать (2) ...)

+0

@ChristianStrempfer благодарит за исправление. @ Billybradley использует фрагменты стека при редактировании – igaurav

ответ

2

Я убрал и исправил то, что у вас было, здесь: http://pastebin.com/sJXVvRUB

I думаю он делает то, что вы хотите. Вам все равно придется переустанавливать ссылку, чтобы выглядеть как кнопка, если хотите. Я также тестировал только в Chrome, поэтому для этого могут потребоваться другие небольшие модификации.

Что касается ваших проблем, и как я установил их:

  1. Я не уверен, я полностью понимаю «пространства» часть проблемы, если вы не означает, что все последовательные пробельные получает (неправильно) сохраняется как одно пространство. Вот как это делает HTML. Я исправил это, заменив note = note.replace("&nbsp;", ""); на note = note.replace('&nbsp;', ' ');. Вы заменяли беспорядочные пробелы ничем. Для разрывов строк я просто избежал примечания перед сохранением: escape(note). Я также переработал призывы к replace(), чтобы быть немного проще и целенаправленнее (по крайней мере, в Chrome).
  2. Для управления именем файла я заменил форму + на ссылку, чтобы я мог использовать атрибут «загрузить», зарегистрированный здесь: https://developer.mozilla.org/en-US/docs/HTML/Element/a#attr-download (также в основном поддерживается только Chrome на данный момент).

Надеюсь, это поможет!

+0

вы потрясаете спасибо! – okwme

+0

Спасибо за это. Есть ли предел для данных, которые мы можем передать в атрибуте HREF? – iAnuj

+0

@iAnuj, вы имеете в виду количество данных или тип? Похоже, вы также можете передавать двоичные данные, хотя я не уверен, что существует ограничение размера/длины, и если есть, будет ли он браузером или зависит от машины. Эксперимент! – Noyo