如何在Javascript中获取文本区域的内容并在光标周围交换两个字符?我想写一个小而有用的Chrome扩展程序,当我在gmail中输错时,我会这样做。 (我假设gmail中的主要编辑区域是textarea)。
这可能是一个非常愚蠢的问题。无论如何,我已经找到了答案并且失败了。我不是一个真正的程序员,但我已经用其他脚本语言写了一些代码片段。例如,使用autohotkey脚本就可以轻松地使用Firefox。出于某种原因,Javascript完全打败了我。
答案 0 :(得分:0)
<强> HTML:强>
<textarea id="my_text" onclick="changeChar();"></textarea>
<强> JAVASCRIPT:强>
function changeChar() {
var pos = getCaretPosition(document.getElementById("my_text"));
//alert(pos);
if (pos > 0) swapChars(pos - 1);
}
function swapChars(pos) {
var cur_val = document.getElementById("my_text").value;
var firstChar = cur_val.charAt(pos);
var secondChar = cur_val.charAt(pos + 1);
var startString = cur_val.substr(0, pos);
var endString = cur_val.substring(pos + 2);
document.getElementById("my_text").value = startString + secondChar + firstChar + endString;
}
// From http://demo.vishalon.net/getset.htm
function getCaretPosition(ctrl) {
var CaretPos = 0;
// IE Support
if (document.selection) {
ctrl.focus();
var Sel = document.selection.createRange();
Sel.moveStart('character', -ctrl.value.length);
CaretPos = Sel.text.length;
}
// Firefox support
else if (ctrl.selectionStart || ctrl.selectionStart == '0'){
CaretPos = ctrl.selectionStart;
}
return (CaretPos);
}