Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.11.2018, 23:59
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

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

Для этого нужно писать кастомное событие с привязкой к этим кнопкам или есть какие то IP ?
Ответить с цитированием
  #2 (permalink)  
Старый 04.11.2018, 00:19
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

history.forward(); // эквивалентно кнопке вперед
history.back(); // эквивалентно кнопке назад
Ответить с цитированием
  #3 (permalink)  
Старый 04.11.2018, 00:19
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

MC-XOBAHCK,
https://javascript.ru/forum/misc/699...tml#post460057
Ответить с цитированием
  #4 (permalink)  
Старый 04.11.2018, 00:20
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

так же можно использовать
history.go(-1); // страниц назад
history.go(1); // страниц вперед
Ответить с цитированием
  #5 (permalink)  
Старый 04.11.2018, 00:22
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
MC-XOBAHCK,
Сообщение от рони
https://javascript.ru/forum/misc/699...tml#post460057
так вот вы о чем..
Ответить с цитированием
  #6 (permalink)  
Старый 04.11.2018, 00:29
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

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

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

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

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

Последний раз редактировалось MC-XOBAHCK, 04.11.2018 в 00:43.
Ответить с цитированием
  #7 (permalink)  
Старый 04.11.2018, 01:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,108

MC-XOBAHCK,
массив значений textarea хранить
Ответить с цитированием
  #8 (permalink)  
Старый 04.11.2018, 01:30
Аватар для MC-XOBAHCK
Профессор
Отправить личное сообщение для MC-XOBAHCK Посмотреть профиль Найти все сообщения от MC-XOBAHCK
 
Регистрация: 06.08.2017
Сообщений: 473

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

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

Я вот думаю если нет для этого доступных IP, то наверное проще написать кастомное событие вызывающее комбинации этих клавишь.
По идее должно что то быть. Наверное это тоже что то из BOM.
Ответить с цитированием
  #9 (permalink)  
Старый 04.11.2018, 02:06
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

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

доступные команды можете посмотреть тут
https://developer.mozilla.org/ru/doc...nt/execCommand
Ответить с цитированием
  #10 (permalink)  
Старый 04.11.2018, 02:08
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

<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>


напишите что нибудь, пощелкайте кнопки
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как реализовать смену порядка перетаскиванием MC-XOBAHCK Общие вопросы Javascript 3 19.08.2018 19:13
как присвоить путь картинки через js SolomonRei Элементы интерфейса 1 24.04.2018 21:34
Вывод кликабельных изображений только через js как? panikajo Общие вопросы Javascript 4 07.12.2017 12:54
Как подключить данные с PHP по средствам JS на удаленный сервер. Nyam Элементы интерфейса 13 11.04.2014 17:14
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29