【发布时间】:2011-09-06 06:35:26
【问题描述】:
我无法弄清楚为什么当文本区域获得焦点时我无法获取要选择的文本区域的内容。
请在此处访问实时示例:http://jsfiddle.net/mikkelbreum/aSvst/1
使用 jQuery,这是我的代码。 (在 SAFARI 中)它在点击事件的情况下选择文本,而不是焦点事件:
$('textarea.automarkup')
.mouseup(function(e){
// fixes safari/chrome problem
e.preventDefault();
})
.focus(function(e){
$(this).select();
})
.click(function(e){
$(this).select();
});
【问题讨论】:
-
这听起来像是在有人试图编辑它时清除所有内容的秘诀……很痛苦。在大多数浏览器(和大多数其他应用程序)中,三次单击将选择文本区域的内容。我建议坚持标准的 UI 约定。
-
内容不应该被编辑,只是复制。
-
但是你说得有道理.. 但是,抛开这些不谈,我想了解一下 Safari 发生了什么以及这里的事件触发.. (请参阅我在 jsfiddle 页面上的注释)
-
就我而言,Flash 已经死了。 IMO,textarea 可以提供原始文本进行复制,而且肯定比使用 flash 更不邪恶。但是,我再次感谢您的意见,但请让我听取有关问题中所述实际问题的意见..
-
我知道这篇文章已经有一段时间了,但如果有人担心用户在尝试复制文本时会修改文本,您可以在
<textarea>中添加readonly作为属性标记。
标签: javascript jquery select focus