Jquery 如何在按键时更改内容可编辑输入字符

Jquery 如何在按键时更改内容可编辑输入字符,jquery,keypress,contenteditable,Jquery,Keypress,Contenteditable,我有一个内容可编辑的div,我想在触发按键事件时修改输入字符: $('div')。打开('keypress',函数(e){ e、 预防默认值(); $(e.target).trigger(jQuery.Event('keypress',{which:e.which+1728})); }); 嗨,我是一个div 要在contenteditable中添加字符,必须获取光标位置并粘贴在同一位置 您可以尝试下面的代码。 下面是@Tim_提出的代码:和 使用此选项,您可以为要在密钥激发时添加的每个事件

我有一个内容可编辑的div,我想在触发按键事件时修改输入字符:

$('div')。打开('keypress',函数(e){
e、 预防默认值();
$(e.target).trigger(jQuery.Event('keypress',{which:e.which+1728}));
});

嗨,我是一个div

要在contenteditable中添加字符,必须获取光标位置并粘贴在同一位置

您可以尝试下面的代码。 下面是@Tim_提出的代码:和

使用此选项,您可以为要在密钥激发时添加的每个事件创建一个映射密钥

var greekChars={
“a”:“\u03b1”
//在此处添加字符映射
};
函数convertCharToGreek(charStr){
返回greekChars[charStr]| |“[stack]”;
}
函数insertTextAtCursor(文本){
变量选择、范围、文本节点;
if(window.getSelection){
sel=window.getSelection();
if(sel.getRangeAt&&sel.rangeCount){
范围=选择范围(0);
range.deleteContents();
textNode=document.createTextNode(文本);
range.insertNode(textNode);
//将插入符号移动到新插入的文本节点的末尾
range.setStart(textNode,textNode.length);
range.setEnd(textNode,textNode.length);
选择removeAllRanges();
选择添加范围(范围);
}
}else if(document.selection&&document.selection.createRange){
range=document.selection.createRange();
范围。粘贴HTML(文本);
}
}
var div=document.getElementById(“div”);
div.onkeypress=功能(evt){
evt=evt | | window.event;
var charCode=(typeof evt.which==“未定义”)?evt.keyCode:evt.which;
if(字符码){
var charStr=String.fromCharCode(charCode);
var greek=convertCharToGreek(charStr);
insertTextAtCursor(希腊语);
返回false;
}
}

嗨,我是一个div

要在contenteditable中添加字符,必须获取光标位置并粘贴在同一位置

您可以尝试下面的代码。 下面是@Tim_提出的代码:和

使用此选项,您可以为要在密钥激发时添加的每个事件创建一个映射密钥

var greekChars={
“a”:“\u03b1”
//在此处添加字符映射
};
函数convertCharToGreek(charStr){
返回greekChars[charStr]| |“[stack]”;
}
函数insertTextAtCursor(文本){
变量选择、范围、文本节点;
if(window.getSelection){
sel=window.getSelection();
if(sel.getRangeAt&&sel.rangeCount){
范围=选择范围(0);
range.deleteContents();
textNode=document.createTextNode(文本);
range.insertNode(textNode);
//将插入符号移动到新插入的文本节点的末尾
range.setStart(textNode,textNode.length);
range.setEnd(textNode,textNode.length);
选择removeAllRanges();
选择添加范围(范围);
}
}else if(document.selection&&document.selection.createRange){
range=document.selection.createRange();
范围。粘贴HTML(文本);
}
}
var div=document.getElementById(“div”);
div.onkeypress=功能(evt){
evt=evt | | window.event;
var charCode=(typeof evt.which==“未定义”)?evt.keyCode:evt.which;
if(字符码){
var charStr=String.fromCharCode(charCode);
var greek=convertCharToGreek(charStr);
insertTextAtCursor(希腊语);
返回false;
}
}

嗨,我是一个div