Selection :: addRange在大型DOM中非常慢

时间:2017-07-28 05:46:59

标签: javascript

document.getSelection().addRange()有替代方案吗?

在包含div的内容可编辑框架中,随着div向下移动,它会变慢。

1 个答案:

答案 0 :(得分:0)

您是先运行removeAllRanges吗? MDN articlethis SO answer似乎需要/推荐这个电话。

MDN文章中的示例脚本:

/* Select all STRONG elements in an HTML document */

var strongs = document.getElementsByTagName("strong");
var s = window.getSelection();

if(s.rangeCount > 0) s.removeAllRanges();

for(var i = 0; i < strongs.length; i++) {
  var range = document.createRange();
  range.selectNode(strongs[i]);
  s.addRange(range);
}