JS-聚焦到b标记
JS - focus to a b tag
我想将焦点设置为b标记(<b>[焦点应该在这里]</b>)
我预期的结果是div中的b标记有焦点,如果我要写的话,字符是粗体的
这不可能吗?我该怎么做?
创意来自这里:
聚焦在飞行上创建的元素
HTML:
<div id="editor" class="editor" contentEditable="true">Hallo</div>
JS onDomready:
var input = document.createElement("b"); //create it
document.getElementById('editor').appendChild(input); //append it
input.focus(); //focus it
我的解决方案感谢A1rPun:
add:'input.tabIndex=1;'听下面的键。
HTML:
<h1>You can start typing</h1>
<div id="editor" class="editor" contentEditable="true">Hallo</div>
JS-
window.onload = function() {
var input = document.createElement("b"); //create it
document.getElementById('editor').appendChild(input); //append it
input.tabIndex = 1;
input.focus();
var addKeyEvent = function(e) {
//console.log('add Key');
var key = e.which || e.keyCode;
this.innerHTML += String.fromCharCode(key);
};
var addLeaveEvent = function(e) {
//console.log('blur');
// remove the 'addKeyEvent' handler
e.target.removeEventListener('keydown', addKeyEvent);
// remove this handler
e.target.removeEventListener(e.type, arguments.callee);
};
input.addEventListener('keypress', addKeyEvent);
input.addEventListener('blur', addLeaveEvent);
};
您可以添加一个tabIndex
属性以允许元素聚焦。
input.tabIndex = 1;
input.focus();//now you can set the focus
jsfiddle
编辑:
我认为解决问题的最好方法是用font-weight: bold
设计输入标签的样式。
我不得不在粗体区域内添加一个空格,因为我无法让它处理空元素。
这是通过将选择器移动到contentEditable中的最后一个元素中来实现的,因为粗体元素是最后添加的元素。
可以对其进行编辑,以便将焦点放在任何元素上。
http://jsfiddle.net/dnzajx21/3/
function appendB(){
var bold = document.createElement("b");
bold.innerHTML = " ";
//create it
document.getElementById('editor').appendChild(bold); //append it
setFocus();
}
function setFocus() {
var el = document.getElementById("editor");
var range = document.createRange();
var sel = window.getSelection();
range.setStartAfter(el.lastChild);
range.collapse(true);
sel.removeAllRanges();
sel.addRange(range);
el.focus();
}
我使用的SetFocus函数来自于这个问题:如何在contenteditable元素(div)中设置插入符号(光标)的位置?
相关文章:
- 使用类从一个标记中双击事件
- 如何更改<svg>标记为<img>用js标记
- angular.js没有'无法在PhoneGap中处理视图标记
- 从Rally获取一个特定的标记,以便计算另一个字段中的值
- 制作一个不带HTML a标记但在动画播放完毕后指向其他页面的超链接
- 使用javascript检查多个输入值,并在1次检查中标记多个输入框
- 谷歌地图标记不会显示
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- 铬:“;未捕获的语法错误:意外的标记:"
- 将事件聚焦/模糊在可编辑内容的元素上
- jQuery自动完成阻止选择后聚焦
- 可以设置“;文件名"发生错误时显示的内联脚本标记的
- HTML标记在脚本标记中工作
- 如何知道哪个标记被谷歌地图点击了
- 谷歌地图JS API+JSON-多个标记没有显示
- 更改li标记文本的Javascript
- 未捕获的语法错误:意外的标记{
- JS-聚焦到b标记
- jQuery - <选项> 标记 - 无法在<选项>“取消选择”或“聚焦”上触发回调
- 将多个元素附加到input>标记时,使用jQuery聚焦