我正在使用JavaScript和HTML进行编程,并且我有一个textArea
(textarea)和一个div
显示我resultado
已经处理了textArea
.
但我想要的是处理选定的文本。也就是说,他resultado
是:
用粗体和大号标记选定的部分。
我的代码如下:
function procesar_selección(texto)
{
return texto
}
function procesar_selección_html()
{
var texto = document.getElementById("texto_html").value
resultado.innerHTML = procesar_selección(texto)
}
textarea{
height: 100px;
width : 400px;
}
<div>Escriba el texto a procesar:</div>
<textarea
id = "texto_html"
onkeyup = "procesar_selección_html()"
onkeydown = "procesar_selección_html()" >
</textarea>
<div id="resultado" ></div>
要处理选定的文本,必须访问标记具有的两个属性
textArea
。selectionStart
是一个整数,指示选择的开始位置。selectionEnd
是另一个整数,表示该选择结束的位置。首先我们创建一个函数来获取
textarea
(textarea)。为此,我们将使用document.getElementById
并获取具有id
value的元素"texto_html"
:在这种情况下,您创建一个名为的变量
área_texto
并将函数返回的内容分配给它obtener_textarea()
,因此textarea
将是变量área_texto
。我们还为结果区域做了一个类似的功能,我们称之为obtener_área_resultado()
.要访问
selectionStart
and属性selectionEnd
,只需执行área_texto.selectionStart
andárea_texto.selectionEnd
。一旦声明了具有这些位置的变量,我将执行以下操作:这意味着我将处理选择的结果分配给中心,左边是文本的开头,右边是文本的结尾。所有这些都构建为单个纯文本,将由HTML
div
引擎设置样式,因为我将其分配给.函数
procesar_selección
,它的作用是将文本分成三部分。del
inicio
是从文本区域中写入内容的开头到所选内容的开头。del
centro
是从选择的开始到选择的结束。del
fin
是从选择的结尾到文本区域中写入的内容的结尾。最后,将三部分连接起来,但 的部分
centro
用标签b
和括起来big
,因此以粗体和大号显示。除了通过使用
keydown
and按下键盘键调用该函数外keyup
,我还让它通过鼠标移动、使用mousedown
andmouseup
调用该函数mousemove
。所有这一切都是通过财产完成的addEventListener
。完整代码: