javascript - Selection::addRange 在大 DOM 中非常慢

标签 javascript

是否有任何替代 document.getSelection().addRange() 的方法?

在包含 div 的内容可编辑框架中,当我们向下移动 div 时,速度会变慢。

最佳答案

你在运行吗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);
}

关于javascript - Selection::addRange 在大 DOM 中非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45365736/

相关文章:

javascript - 转换为 JSON 时对象属性消失

javascript - 使用 JavaScript(如果需要,还可以使用 mootools)为我的 CSS 创建新定义。选择器问题

javascript - tus - 上传后访问控制允许来源错误

JavaScript 逻辑问题

javascript - javascript中/[^\n\S]* :(? !:)/和/[^\n\S]*:/之间有什么不同

javascript - Google 表格中的列数? VBA 为例

javascript - 调用 Axis 函数导致问题 D3

javascript - 如何在 Internet Explorer 的新选项卡中打开网页?

javascript - Node : Wait for python script to run

javascript - 如何以 Angular 动态创建n级嵌套展开/折叠组件