gpt4 book ai didi

javascript - Build textarea with formatting controls - 如何获取选中的文本

转载 作者:行者123 更新时间:2023-11-29 15:03:39 24 4
gpt4 key购买 nike

只是为了好玩,我想为文本区域构建简单的文本格式化工具。首先,如果要采用粗体格式(就像 stackoverflow 的文本区域编辑器一样),我希望能够用 ** 将突出显示的文本括在文本区域中。我编写了以下代码,大部分时间都可以正常工作,但它确实有一个错误,我将在稍后解释。

<html>
<head>
<script type="text/javascript" language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
var tmpText = '';
$(document).ready(function(){
tmpText = '';
$('#btn_bold').click(function(){bold(tmpText);});
$('textarea').bind('mouseup', function(){
tmpText = '';
if(window.getSelection){
tmpText = window.getSelection().toString();
}else if(document.getSelection){
tmpText = document.getSelection().toString();
}else if(document.selection){
tmpText = document.selection.createRange().text;
}
});
});

function bold(str)
{
$('textarea').val($('textarea').val().replace(str,'**'+str+'**'));
}
</script>
</head>
<body>
<button type="button" id="btn_bold">bold it</button>
<textarea>AA</textarea>
</body>
</html>

因此,如果您突出显示第一个字母 A 并将其加粗,您将得到结果 **A**A。但是,如果您突出显示第二个字母 A 并将其加粗,您仍然会得到 **A**A,而不是 A**A**,因为该行代码 $('textarea').val($('textarea').val().replace(str,'**'+str+'**')); 不足以识别哪个您想加粗的字母 A。

识别高亮文本并将其加粗的有效方法是什么?

最佳答案

我写了一个jQuery plug-in that does this如果有帮助,我可以将其提取到独立脚本中。使用插件将所选文本替换为单词“hello”的示例。

<html>
<head>
<script type="text/javascript" language="javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript" src="http://rangyinputs.googlecode.com/files/textinputs_jquery.js"></script>
<script type="text/javascript" language="javascript">

$(document).ready(function() {

$('textarea').bind('mouseup',function() { $(this).replaceSelectedText('hello');});
});
</script>
</head>
<body>
<textarea style="width:300px; height:300px;">
AAA
</textarea>
</body>
</html>

此外,as I commented in a related question of yours ,你在那里的功能不适用于文本区域,它有一个单独的机制来处理选择。在那里查看我的答案,了解可以使用的功能。

关于javascript - Build textarea with formatting controls - 如何获取选中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6170847/

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