我知道HTML中的富文本框是一個雷區,但我希望這種特殊情況不會太棘手。我想要一個用戶不能格式化的文本框,但是通過腳本我可以添加一些格式化的光(所以textarea不起作用)。編輯框:禁用用戶格式,但添加我自己
我的第一個想法是,我可以使用contentEditable
,如果用戶沒有工具欄,他們不能做很多,但仍然有Ctrl + B,Ctrl + I等組合。所以我這樣做:
ctrlHandler = function (event) {
event.preventDefault();
};
this.keydown(function (event) {
if (event.ctrlKey) {
$(this).bind('keypress', ctrlHandler);
}
});
this.keyup(function (event) {
if (event.ctrlKey) {
$(this).unbind('keypress', ctrlHandler);
}
});
當按下Ctrl鍵時()的事件處理程序綁定到按鍵,防止默認值,當它的發佈事件處理程序綁定。聰明,呃? (以後我會研究如何處理剪切/複製/粘貼等組合)。通過這種方式,事件處理程序可以正確綁定,但event.preventDefault()
實際上並不會阻止默認設置!文字變得粗體/斜體/下劃線,就好像我什麼也沒做。格式變化似乎發生在事件發生之前。使用或keyup
而不是keypress
也不起作用。任何人都可以想到另一種(跨瀏覽器)的方法,或者如何使這個工作?