我有一个带有文本框和按钮的窗体:
<p><textarea rows="4" cols="30">Lorem ipsum dolor sit amet, consectetur adipisicing elit.</textarea></p>
<p><input type="button" value="Click me"></p>
用户选择一个文本,然后点击按钮。当文本区域失去焦点时,选择不再可见。
有没有办法让选择保持可见?它不需要是可用的(也就是说,没有必要,例如键入删除选择或Ctrl+C复制它),但我希望某种视觉反馈,文本区包含一个选择。
8条答案
按热度按时间b1zrtrql1#
在深入研究了jsfiddle之后,我发现CodeMirror具备创建高度定制的文本区域所需的一切,它是为编写代码而构建的,但通过一个小技巧,它可以应用于一般的文本区域。
参见DEMO
首先准备好文本区域:
然后将下面的脚本放在它后面以创建CodeMirror文本区域,并提供附加设置以将其转换为普通文本区域。
mode
:我在这里使用"none"
来删除语法突出显示。lineWrapping
:使用true
对较长的行换行。最后,使用CSS来控制大小,使其看起来像一个标准的文本区域:
nwlls2ji2#
这在IE/Chrome上可以正常工作,但在FF上不行。
所以这里有一个通用的解决方案:
k97glaaz3#
我知道严格来说这不是你想要的,但我还是要作弊。
Javascript:
超文本:
CSS:
演示:http://jsfiddle.net/Mb89X/4/
oug3syen4#
您可以将
textarea
Package 在iframe
中,当单击按钮时,iframe
仍然在框架内显示所选内容。This fiddle使用
srcdoc
属性,只有Chrome和Safari 6支持该属性。不过,您仍然可以使用没有该属性的iframe
。编辑:这里有一个new even hackier fiddle,使用jquery添加
iframe
,至少在Chrome和FF中工作(出于安全原因,IE不允许iframe
中的数据URI)hec6srdp5#
你想做的事情在文本区域是不可能的。
我建议使用
div
和contenteditable="true"
以及rangy,而不是使用文本区域,然后将选中的文本换行,或者选择焦点和模糊事件上的文本。这个演示演示了如何选择文本:http://rangy.googlecode.com/svn/trunk/demos/highlighter.html
t8e9dugd6#
从@囚犯的想法,我想进一步改进,直到它的感觉像一个自然的行为与滚动和调整大小的功能。
主要的想法是相同的。我也做了完整的演示与评论**here**。我转贴如下的上下文这个问题。
jutyujz07#
如果按钮的
:focus
不重要,可以使用这是Fiddle。
pgx2nnw88#
试试这个:
http://jsfiddle.net/inser/YJzvb/2/