2015-10-07 36 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.