0

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

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

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

4

1 回答 1

0

postInit选项和 jQueryscrollTop函数的组合应该可以解决问题。我还建议为它们插入一个占位符段落,同时滚动到底部。例如:

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();
        }    
    }
});
于 2013-08-19T22:48:27.677 回答