2013-08-17 2 views

ответ

3

Для обнаружения нажатия клавиш вам придется использовать JavaScript.

Поскольку вы уже используете JQuery в приложении, необходимо учитывать следующее:

$(document).keydown(function(e){ 
    if (e.ctrlKey && e.keyCode == 122) { 
     myCtrlZFunction(); 
    } 
    else if(e.ctrlKey && e.keyCode == 121) { 
     myCtrlYFunction(); 
    } 
}); 

е в закрывающей аргумент KeyDown является номер кода для ключа депрессии. Код для г составляет 122, код для у 121.

Все, что вам действительно нужно сделать, это создать свой myCtrlZFunction() и myCtrlYFunction()

Вы можете увидеть различные значения скан-кодом на: http://expandinghead.net/keycode.html

+0

Я хочу выполнить эти команды одним нажатием кнопки на редакторе. показать, как обрабатывать Ctrl + z/y, но я хочу выполнить это действие на одной кнопке. –

+0

Какая кнопка? И если вы хотите использовать «одну кнопку», почему вы указали использование 'ctrl' +' z'/'ctrl' +' y' в вашем вопросе? –

+0

Я имею в виду ctrl + y в одной отдельной кнопке и ctrl + z в другой отдельной кнопке. –

2

Используйте это, она отлично работает на меня:

function execFnct() { 
    document.execCommand("undo", false, null); 
} 

HTML:

<textarea style="width: 499px; height: 230px; border: 1px solid red;"></textarea> 
<div style="width: 499px; height: 230px; border: 1px solid red;" contentEditable="true"></div> 
<input type="button" onmouseup="execFnct()"/> 

Функция execCommand в этом случае работает с textarea или любым элементом contentEditable.

0

Это отлично работает, как и Redo Undo кнопки:

стиль CSS:

.textId { width: 499px; height: 230px; border: 1px solid red; } 

JavaScript

function Undo() { document.execCommand("undo", false, null); } 
function Redo() { document.execCommand("redo", false, null); } 

HTML коды

<textarea class="textId"></textarea> 
<div class="textId" contentEditable="true"></div> 
<input type="button" onmouseup="Undo()"/ value="Undo"> 
<input type="button" onmouseup="Redo()"/ value="Redo"> 

Полное Пример:

<html><head></head> 

<style>.textId { width: 499px; height: 230px; border: 1px solid red; }</style> 

<script language="JavaScript"> 
function Undo() { document.execCommand("undo", false, null); } 
function Redo() { document.execCommand("redo", false, null); } 
</script> 

<body> 

<textarea class="textId"></textarea> 
<div class="textId" contentEditable="true"></div> 
<input type="button" onmouseup="Undo()"/ value="Undo"> 
<input type="button" onmouseup="Redo()"/ value="Redo"> 

</body></html> 

PS: Он не может назвать CTRL + Z и Ctrl + Y, но это делает повтор и отмена команд. Лично я все еще пытаюсь выяснить, как получить команду CTRL + V нажатием кнопки. Если да, пожалуйста, сообщите мне. Но в любом случае это решение является единственным рабочим решением, которое я нашел для кнопок CTRL + Z и CTRL + Y, но только для поля div, а не для поля textarea :(

Смежные вопросы