Javascript 如何将光标移动到WYMeditor框的末尾并设置焦点?

Javascript 如何将光标移动到WYMeditor框的末尾并设置焦点?,javascript,jquery,wymeditor,Javascript,Jquery,Wymeditor,我在我的论坛上使用WYMEditor,用户可以“引用”他人的消息。在这种情况下,WYMEditor加载了包装在blockquote标记中的内容 不幸的是,引号的内容通常比输入框的大小占用更多的空间,当用户单击框时,最终会在blockquote中输入文本。这会导致混乱的消息 我想要的是将WYMEditor的内容滚动到底部,将光标放在末尾,然后将焦点放在wym框上。不幸的是,WYMEditor api中没有这样的功能。有一些未记录的函数在源代码中提供选择管理,但我的JavaScript/jQuery

我在我的论坛上使用WYMEditor,用户可以“引用”他人的消息。在这种情况下,WYMEditor加载了包装在blockquote标记中的内容

不幸的是,引号的内容通常比输入框的大小占用更多的空间,当用户单击框时,最终会在blockquote中输入文本。这会导致混乱的消息


我想要的是将WYMEditor的内容滚动到底部,将光标放在末尾,然后将焦点放在wym框上。不幸的是,WYMEditor api中没有这样的功能。有一些未记录的函数在源代码中提供选择管理,但我的JavaScript/jQuery技能不足以利用它们-我已经尝试过了,但失败了。

postInit
选项和jQuery
scrollTop
函数结合起来应该可以实现这一点。我还建议为他们插入一个占位符段落,同时滚动到底部。例如:

jQuery('.wymeditor').wymeditor({
    postInit: function (wym) {
        var $contents,
            $p,
            $blockquote = jQuery(wym._doc).find('blockquote');
        // Insert a placeholder empty paragraph 
        // so that users will be encouraged to not type inside the blockquote
        $blockquote.after("<p>");

        // Scroll the iframe to the bottom
        $contents = $(wym._iframe).contents();
        $contents.scrollTop($contents.height());

        // Move the selection to the paragraph
        $(wym._iframe).focus();
        $p = jQuery(wym._doc).find('p');

        var sel = rangy.getIframeSelection(wym._iframe),
            range = rangy.createRange(wym._doc);

        range.setStart($p[0], 0);
        range.setEnd($p[0], 0);
        range.collapse(true);

        sel.setSingleRange(range);
        if (jQuery.browser.msie) {
            wym.saveCaret();
        }    
    }
});
jQuery('.wymeditor').wymeditor({
postInit:功能(wym){
var$contents,
$p,
$blockquote=jQuery(wym._doc).find('blockquote');
//插入占位符空段落
//因此,将鼓励用户不要在blockquote中键入
$blockquote.之后(“”);
//将iframe滚动到底部
$contents=$(wym._iframe).contents();
$contents.scrollTop($contents.height());
//将所选内容移动到段落
$(wym._iframe).focus();
$p=jQuery(wym._doc).find('p');
var sel=范围getIframeSelection(wym.\U iframe),
范围=rangy.createRange(wym.\u doc);
range.setStart($p[0],0);
range.setEnd($p[0],0);
范围。塌陷(真);
选择设置单公差(范围);
if(jQuery.browser.msie){
wym.saveCaret();
}    
}
});

太棒了,谢谢!这解决了滚动问题,但是它不会自动将焦点设置到编辑器和元素中。有什么想法吗?只是更新了代码示例以移动选择。这是“对我有用”的代码,所以一定要仔细看看。对我也有用。谢谢!令人惊叹的。那么你介意接受这个答案吗?很高兴我能帮上忙。对不起,我是新来的,所以,我试着投你的票,但它不让我。