Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox-聚焦contenteditable中的段落_Javascript_Jquery_Css_Html_Firefox - Fatal编程技术网

Javascript Firefox-聚焦contenteditable中的段落

Javascript Firefox-聚焦contenteditable中的段落,javascript,jquery,css,html,firefox,Javascript,Jquery,Css,Html,Firefox,Firefox似乎没有将焦点放在contenteditable中的段落上。我试图通过编程设置焦点。Chromes似乎有点神奇,一切都很好 <h2 contenteditable="true">Some text</h2><br/><br/> <div contenteditable="true"> <p id="test">Paragraph text</p> </div> 提前感谢好吧,我没有

Firefox似乎没有将焦点放在contenteditable中的段落上。我试图通过编程设置焦点。Chromes似乎有点神奇,一切都很好

<h2 contenteditable="true">Some text</h2><br/><br/>
<div contenteditable="true">
  <p id="test">Paragraph text</p>
</div>

提前感谢

好吧,我没有任何正式的Firefox信息,但是当我将您的两个JSFIDLE示例合并在一起时,我能够将插入符号放在正确的位置。在MacOSX1.9.4上的Firefox30中,这似乎对我很有效。我可以通过简单地注释掉对
setCaret()的调用来重新创建原来的问题


在合并代码时,我改变了一件事,即在所有范围操作之前移动元素焦点,但我不确定这是否有任何影响。

问题只在按tab键时出现,而不是手动单击时出现,对吗?是否希望它选择其中的所有文本?或者将插入符号设置为预填充文本的结尾?这只是tab的问题。我只想在点击tab后立即开始输入段落。不过,你可能需要进行一些浏览器检测:出于某种原因,在IE和Chrome中点击tab将使地址栏聚焦于此code@kapep有趣!在合并原始示例时,我甚至没有考虑跨浏览器。YMMV,我猜。当你有两段文字时,它似乎不起作用。点击tab并开始键入,然后点击enter,您将有一个新段落。现在转到h2元素并再次点击tab,它似乎没有聚焦。好吧,现在你正在改变场景。在Chrome、FireFox和IE11中测试。适用于单个和多个段落,制表符聚焦效果良好。返回h2并点击tab键,返回开始。也许你应该研究HTML块末尾的制表符?或者不必担心切换到其他位置,因为用户将进行切换,查看插入符号,然后移动到他们想要编辑的位置。
$( "#test" ).focus(function() {
  $( "<span>Focused!</span>" ).appendTo( "body" ).fadeOut( 1000 );
});

$("#before").on('keydown', function(e){
            if(e.which == 9){
                $('#test').triggerHandler('focus');
            }

        });

$("#test").bind( "focus", function() {
   $("#test").css('background', 'yellow');   
});
function setCaret() {
    var el = document.getElementById("test");
    var range = document.createRange();
    var sel = window.getSelection();
    range.setStart(el, 0);
    range.collapse(true);
    sel.removeAllRanges();
    sel.addRange(range);
    el.focus();
}