スニペットをhtmlテキストエリアに実装しようとしています。特定の単語を書くと、Key Valueオブジェクトを調べて、テキストが存在する場合はそれを展開します。これが私がしたことです:
var textarea = document.getElementById("whatever");
var snippets = {
'hello': 'Hello and welcome to my great site'
}
var prepend = "";
var checkCaps = function(e){
if (e.keyCode != 9) return;
e.preventDefault();
var string = "";
var pos = textarea.selectionStart;
var text = textarea.value.split("");
while (pos) {
char = text.pop(pos);
prepend = (char == " ") ? " ": "";
if (char == " ") break;
string += char
pos -= 1;
}
if (snippets[string.reverse()]) {
textarea.value = text.join("")
textarea.value += prepend + snippets[string.reverse()]
}
}
textarea.addEventListener("keydown", checkCaps, false);
String.prototype.reverse=function(){return this.split("").reverse().join("");}
問題は、スニペットがテキストエリアの最後の単語でのみ機能するvalue
ことであり、問題がどこにあるかを特定できないようです。