Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как реализовать отмена/вперёд через JS (https://javascript.ru/forum/misc/75758-kak-realizovat-otmena-vperjod-cherez-js.html)

MC-XOBAHCK 03.11.2018 23:59

Как реализовать отмена/вперёд через JS
 
Подскажите, как в js реализовуют кнопки отмена/вперёд для каких либо действий при редактировании?
Имею в виду тот же функционал что на клавиатуре делают комбинации клавиш Ctrl + Z / Ctrl + Shift + Z.

Для этого нужно писать кастомное событие с привязкой к этим кнопкам или есть какие то IP ?

j0hnik 04.11.2018 00:19

history.forward(); // эквивалентно кнопке вперед
history.back(); // эквивалентно кнопке назад

рони 04.11.2018 00:19

MC-XOBAHCK,
https://javascript.ru/forum/misc/699...tml#post460057

j0hnik 04.11.2018 00:20

так же можно использовать
history.go(-1); // страниц назад
history.go(1); // страниц вперед

j0hnik 04.11.2018 00:22

рони,
MC-XOBAHCK,
Цитата:

Сообщение от рони
https://javascript.ru/forum/misc/699...tml#post460057

так вот вы о чем..

MC-XOBAHCK 04.11.2018 00:29

Не, по истории посещённых страниц браузера гонять это не то. А я так обрадовался сначала....

Мне нужно тот же функционал что на клавиатуре делают комбинации клавиш Ctrl + Z / Ctrl + Shift + Z

Допустим в textarea (можно прям в этой форме комментариев) из текста вырезаю пару параграфов, потом вдруг осознаю что я болван и не то вырезал, нажимаю Ctrl + Z и удалённые параграфы возвращаются назад. Теперь я не болван а красавчег.

Вот эту же штуку хочу повесить на две кнопочки назад/вперёд.

рони 04.11.2018 01:02

MC-XOBAHCK,
массив значений textarea хранить

MC-XOBAHCK 04.11.2018 01:30

Цитата:

Сообщение от рони (Сообщение 497803)
MC-XOBAHCK,
массив значений textarea хранить

А не знаете, у браузера нет доступных для этого IP ?
По умолчанию ведь в нём где то это всё сохраняется. Если на странице поменять несколько инпутов, текстария, таблицу доступную для редактирования, то на клавиатуре Ctrl + Z / Ctrl + Shift + Z можно туда-сюда гонять по всей истории изменений на странице.

Если в браузере это всё уже хранится, при чём очень классно, то зачем создавать и хранить это всё в массиве?

Я вот думаю если нет для этого доступных IP, то наверное проще написать кастомное событие вызывающее комбинации этих клавишь.
По идее должно что то быть. Наверное это тоже что то из BOM.

j0hnik 04.11.2018 02:06

наверное API, а не IP
document.execCommand('undo'); // отменить последние действие
document.execCommand('redo'); // Повтор последнего действия

доступные команды можете посмотреть тут
https://developer.mozilla.org/ru/doc...nt/execCommand

j0hnik 04.11.2018 02:08

<textarea></textarea>
	<button id="zzz">ctrl+Z</button>
	<button id="yyy">ctrl+Y</button>
	<script>
		zzz.onclick = e => document.execCommand('undo');
		yyy.onclick = e => document.execCommand('redo');
	</script>


напишите что нибудь, пощелкайте кнопки


Часовой пояс GMT +3, время: 14:12.