我正在尝试做的事情。我的网页上有一个日志区域
.log {
padding: 5px;
background: #CCF;
max-height: 50px;
overflow: auto;
}
.log pre {
margin: 0;
}
<p>
some text
<p>
<div class="log">
<pre>some</pre>
<pre>logged</pre>
<pre>text</pre>
<pre>that</pre>
<pre>is</pre>
<pre>hundreds</pre>
<pre>of</pre>
<pre>lines</pre>
<pre>long</pre>
</div>
我不想阻止用户在日志之外选择文本(例如,上面的“某些文本”),但是我想检查用户是否通过键盘,应用程序菜单或上下文菜单选择了“全选”,如果焦点位于日志区域,那么我只想为日志区域选择全部。复制日志区域比复制所有内容(甚至在日志外部)更为普遍。注意:我要复制的行为与textarea相同。如果文本区域具有焦点,并且您选择了“选择”,则仅选择了所有文本区域的内容,但是如果需要,您仍然可以选择整个文档,包括文本区域之外的区域。
我无法将日志设为文本区域,因为我使用多个元素对其进行了格式化。
强迫用户滚动到日志的一端并将选择或拖动选择拖到底部并不是一个好的UX。
一种可能性是将该区域标记为contenteditable
,尽管我真的不想通过使日志本身可编辑来使用户感到困惑。
我不能只检查Ctrl-A AFAIK,因为使用菜单将无法覆盖。
我很惊讶我还没有找到这个问题的答案,但也许我的搜索能力很弱。