是否可以限制选择所有/Ctrl+A的范围
Is it possible to restrict the range of select all/Ctrl+A?
我正在一个网站上工作,我希望能够显示一个包含语法突出显示源代码的框,供用户复制。当我点击框,给它焦点(Chrome显示其焦点轮廓),并键入Ctrl+A,整个页面的文本被选中,而我希望只有语法突出显示的源代码框内被选中。
是否可以将select all/Ctrl+A的范围限制为仅限框内的文本,最好不使用
我的第一个想法是尝试contenteditable
。当我在框中单击并出现编辑器插入符号时,输入Ctrl+A只选择框内的文本,但它也允许用户更改代码,我认为编辑器界面方面使框contenteditable
会让用户感到困惑。如果我将源代码文本包装在
有
contenteditable="false"
在如果有
contenteditable="true"
,则源代码文本是只读的,但是键入Ctrl+A将再次选择整个页面的文本。
下面是一个测试页面:http://jsfiddle.net/5crgL/
您可以使用document.createRange();
方法从特定元素中选择文本。和处理ctrl+a,你可以使用jQuery的keydown
方法,可以调用JS代码来选择DIV文本。
var range = document.createRange();
range.selectNode(document.getElementById(containerid));
window.getSelection().addRange(range);
请参阅jsfiddle
此处jsfiddle
相关文章:
- 正在全局范围中查找JavaScript函数
- 如何通过数组更新角度子范围
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- HTML范围:动态设置值属性
- "实例范围”;TypeScript类的getter/setter
- jquery日期选择器年份范围默认值
- Jpgraph:如何手动设置X轴和Y轴的范围
- 在对象数组中查找多个值的d3范围
- 动态加载angularjs并生成控制器和范围
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 在Materialize Calendar中设置年份范围
- 在MVVM视图模型中处理应用程序范围的元素
- setInterval游戏循环的范围问题
- AngularJS获取范围中的选定项目
- 从指定范围创建字符数组
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- ngDialog-弹出窗口未更新范围变量
- 是否可以限制选择所有/Ctrl+A的范围
- ctrl.美元setViewValue(定义);美元,ctrl.渲染();和范围.美元消化();使用angular2