【问题标题】:Set window selection from a previously saved selection object从以前保存的选择对象中设置窗口选择
【发布时间】:2016-12-26 19:55:49
【问题描述】:

如果我有一个使用 window.getSelection() 的 textarea(具有 my-text-area 类)的选择对象,如果此选择失去焦点(例如,如果用户单击另一个输入字段),有没有办法我可以以编程方式再次设置此选择吗?

我尝试过这样做:

当我专注时:

var currentSelection = window.getSelection();

在我失去焦点并想再次设置选择后:

var range = currentSelection.getRangeAt(0);
range.selectNode($('.my-text-area')[0]);

var sel = window.getSelection();
sel.removeAllRanges();

sel.addRange(range);

这似乎选择了我的文本区域中的所有内容,而不仅仅是最初选择的小区域。

【问题讨论】:

    标签: javascript dom range selection


    【解决方案1】:

    刚刚找到了出色的 Rangy 库,其中包含一个选择保存和恢复模块,可以做到这一点:https://github.com/timdown/rangy/wiki/Selection-Save-Restore-Module

    【讨论】:

      猜你喜欢
      • 2011-09-05
      • 2021-05-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多