【发布时间】:2014-08-24 13:13:08
【问题描述】:
我在一个网站上工作,我希望能够显示一个包含语法高亮源代码的框供用户复制。当我单击该框,使其获得焦点(Chrome 显示其焦点轮廓)并键入 Ctrl+A 时,将选择整个页面的文本,而我只想要语法突出显示的源选中框内的代码。
是否可以将 select all/Ctrl+A 的范围限制为仅框中的文本,最好不使用
我的第一个想法是尝试contenteditable。当我在框中单击并出现编辑器插入符号时,键入 Ctrl+A 只会根据需要选择框中的文本,但它也允许用户更改代码,我认为制作框contenteditable 的编辑器界面方面会让用户感到困惑。如果我将源代码文本包装在具有 contenteditable="false" 的
中,而
具有
contenteditable="true",则源代码文本是只读的,但键入 Ctrl+A 会选择再次显示整个页面的文本。
这是一个测试页面:http://jsfiddle.net/5crgL/
【问题讨论】:
-
使用 jwerty 覆盖 [ctrl]+[a] 上发生的情况? => keithcirkel.co.uk/jwerty
-
有点叫“全选”,所以限制范围不再是“全选”了,对吗? ;)
-
为什么不使用禁用的文本区域之类的东西?
-
@Linus:我希望文本语法突出显示。
标签: javascript html selection contenteditable