将选择折叠到选择的开始,而不是 div

发布于 2024-12-21 10:02:31 字数 58 浏览 0 评论 0原文

如何将 contentEditable div 中的选定文本折叠到所选内容的开头,而不是整个 div?

How can I collapse selected text in a contentEditable div to the start of the selection , not the entire div?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

像你 2024-12-28 10:02:31

对于除 IE <= 8 之外的所有主流浏览器,您可以使用 collapseToStart() 方法将选择内容折叠到文档顺序中最早的选择点,无论选择方向如何:

window.getSelection().collapseToStart();

在 IE <= 8 中,使用以下方法,这相当于第一个例子上图:

var sel = document.selection;
if (sel.type == "Text") {
    var range = sel.createRange();
    range.collapse(true);
    range.select();
}

最后,将它们放在一起制作一个跨浏览器功能:

function collapseSelectionToStart() {
    var sel, range;
    if (window.getSelection) {
        window.getSelection().collapseToStart();
    } else if ( (sel = document.selection) && sel.type == "Text") {
        range = sel.createRange();
        range.collapse(true);
        range.select();
    }
}

现场演示: http://jsfiddle.net/ yQS9G/2/

For all major browsers except IE <= 8, you can use the collapseToStart() method of the selection to collapse to the earliest point of the selection in document order, regardless of the direction of the selection:

window.getSelection().collapseToStart();

In IE <= 8, use the following, which is the equivalent of the first example above:

var sel = document.selection;
if (sel.type == "Text") {
    var range = sel.createRange();
    range.collapse(true);
    range.select();
}

Finally, putting these together to make a cross-browser function:

function collapseSelectionToStart() {
    var sel, range;
    if (window.getSelection) {
        window.getSelection().collapseToStart();
    } else if ( (sel = document.selection) && sel.type == "Text") {
        range = sel.createRange();
        range.collapse(true);
        range.select();
    }
}

Live demo: http://jsfiddle.net/yQS9G/2/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文