是否可以为 HTML Jquery 中可编辑的内容编写自己的热键?

Is this possible to write own hotkey for content editable in HTML Jquery?

实际上,如果我们在可编辑的内容中使用 Ctrl+B,它将创建一个标签

<b>Content goes here... </b> like this.

我们可以添加自己的热键吗,例如

Ctrl+T

<a class="tamil">Content goes here...</a>

Ctrl+E

<a class="tamil">Content goes here...</a>

请帮忙解决这个问题,先谢谢了。

使用 jQuery 非常简单:

您可以将 keydown-EventListener 添加到每个 contenteditable 元素(或只是 div,任何适合您的目的),您甚至可以在其中消除标准浏览器行为:

$('[contenteditable=true]').keydown(function(e){
    if(e.ctrlKey && e.keyCode == 70){
        e.preventDefault();
        $('#result').append('CTRL + F registered. ');
    }
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div contenteditable=true>
    <p>Some text in here</p>    
</div>

<p id="result"></p>

此事件侦听器仅在 contenteditable 元素获得焦点时才会触发,因此如果它未获得焦点,组合键的标准浏览器功能仍会触发。

已针对 chrome、firefox 和 ie.

的最新版本进行测试

这是使用 ctrl+q 的完整工作代码

$(document).keyup(function(e){
    if(e.ctrlKey && e.keyCode == 81){
   var selection= window.getSelection().getRangeAt(0);
      var selectedText = selection.extractContents();
      var anc= document.createElement("a");
      anc.setAttribute('id','tamil');
      anc.appendChild(selectedText);
      selection.insertNode(anc);
   }
});
   
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Here is a text to work with.