gpt4 book ai didi

javascript - 在 TextArea 中捕捉标签

转载 作者:太空狗 更新时间:2023-10-29 13:46:57 24 4
gpt4 key购买 nike

有谁知道一个跨浏览器的可靠解决方案,用于捕获文本区域字段中的 tab 键按下并替换(在正确位置)4 个空格? textarea 用于输入文章,需要此功能。

注意:我尝试使用 FCKEditor 等,它没有捕捉标签并且有很多我不需要的功能。我想要一个仅用于捕获标签的简单解决方案。

最佳答案

我没有广泛测试,但这似乎有效:

(我在 http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript#comment-3817 找到了“insertAtCursor”函数)

<textarea id="text-area" rows="20" cols="100"></textarea>

<script>
document.getElementById("text-area").onkeydown = function(e) {
if (!e && event.keyCode == 9)
{
event.returnValue = false;
insertAtCursor(document.getElementById("text-area"), " ");
}
else if (e.keyCode == 9)
{
e.preventDefault();
insertAtCursor(document.getElementById("text-area"), " ");
}
};

//http://alexking.org/blog/2003/06/02/inserting-at-the-cursor-using-javascript#comment-3817
function insertAtCursor(myField, myValue) {
//IE support
if (document.selection) {
var temp;
myField.focus();
sel = document.selection.createRange();
temp = sel.text.length;
sel.text = myValue;
if (myValue.length == 0) {
sel.moveStart('character', myValue.length);
sel.moveEnd('character', myValue.length);
} else {
sel.moveStart('character', -myValue.length + temp);
}
sel.select();
}
//MOZILLA/NETSCAPE support
else if (myField.selectionStart || myField.selectionStart == '0') {
var startPos = myField.selectionStart;
var endPos = myField.selectionEnd;
myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
myField.selectionStart = startPos + myValue.length;
myField.selectionEnd = startPos + myValue.length;
} else {
myField.value += myValue;
}
}
</script>

编辑:修改了脚本,使其不使用 jQuery。

关于javascript - 在 TextArea 中捕捉标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1105452/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com