如何使用JQuery或纯JavaScript输入字符,就像输入字符一样?
我有一个contenteditable
部分,并且正在拦截用户输入以替换某些字符(例如直接引号和卷曲字符)。我有以下JQuery来拦截一个角色,但我不确定输入新角色的最佳方式。
$('.editor').keypress(function(e) {
console.log(e.which);
if (e.which === 39) {
e.preventDefault();
// replace with curly quotes
}
});
答案 0 :(得分:3)
document.execCommand怎么样:
$('.editor').keypress(function(e) {
console.log(e.which);
if (e.which === 39) {
e.preventDefault();
document.execCommand('insertHTML', false, 'String To Insert');
}
});
insertHTML在IE中无效,请使用:
document.selection.createRange().pasteHTML('html to insert');
可在以下位置找到命令和示例列表: https://developer.mozilla.org/en-US/docs/Rich-Text_Editing_in_Mozilla
P.S。我认为e.which会在某些浏览器中报告0,所以请执行以下操作:
var code = e.keyCode || e.which;
答案 1 :(得分:0)
你可以做到
$('.editor').keypress(function(e) {
console.log(e.which);
if (e.which === 39) {
e.preventDefault();
$(this).text(function(index, text){
return text.replace(/"/gi, '-'); // <--Change this to replace the " with what you need.
});
}
});