2015-10-07 38 views
0

其实如果我们在内容编辑使用Ctrl+B它会创建一个标签这是可能的编写自己的热键HTML内容可编辑jQuery中的内容?

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

请帮忙解决此问题,谢谢提前。

+0

你尝试过什么,只写伪完整的工作代码?另外,我会避免使用现有的组合键(Ctrl + T打开一个新标签)。 – Rvervuurt

+0

当然,我要求举例。如果键组合可用,我会改变组合。但我需要这个概念。 –

+1

我们不是在这里为你做东西。告诉我们你已经尝试和/或研究过什么,我们可以帮助你实现你想要的。 – Rvervuurt

回答

0

这是很容易使用jQuery:

您可以在keyDown - 事件监听添加到每个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元素集中,因此,如果它不集中,标准的浏览器functionali你的组合键仍然会被触发。

测试了最新版本的chrome,firefox和ie。

0

这里是CTRL + Q

$(document).keyup(function(e){ 
 
    if(e.ctrlKey && e.keyCode == 81){ 
 
\t 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.