我有一个带有文本框和按钮的表单:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head><title></title>
</head>
<body>
<p><textarea rows="4" cols="30">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</textarea></p>
<p><input type="button" value="Click me"></p>
</body>
</html>
用户选择文本,然后点击按钮。由于 textarea 失去焦点,选择不再可见。
有没有办法让选择保持可见?它不需要可用(即,不需要例如键入删除选择或 Ctrl+C 复制它)但我希望文本区域包含选择的某种视觉反馈.
演示:Fiddle
最佳答案
在深入了解 jsFiddle 之后,我发现 CodeMirror拥有创建高度自定义文本区域所需的一切。它是为编写代码而构建的,但有一个小技巧,它可以应用于一般的文本区域。
参见 DEMO
首先准备好文本区域:
<textarea id="a">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</textarea>
然后将下面的脚本放在它后面创建一个CodeMirror textarea,并提供额外的设置将它转换成一个普通的textarea。
mode
:我在这里使用"none"
来去除语法高亮。lineWrapping
:使用true
对长行进行换行。
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("a"), {
mode: "none",
lineWrapping: true
});
最后,使用CSS控制大小,让它看起来像一个标准的textarea:
.CodeMirror {
font-family: monospace;
font-size: 12px;
width: 300px;
height: 100px;
border: solid 1px #000;
}
关于javascript - 当textarea失去焦点时显示选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15523667/