javascript 如何获取光标选取的值并替换?

发布于 09-07 22:27 字数 210 浏览 18 评论 0

问题:如何实现类似富文本编辑器的文本选中并替换值得功能?

 var word = window.getSelection?window.getSelection():document.selection.createRange();
 alert(word); 

使用以上api可以实现获取选取的值,但是如何得到选取的值具体位置并且替换呢?

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

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

发布评论

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

评论(2

白日梦2022-09-14 22:27:12
window.getSelection().baseNode.data='改变的内容'
情绪2022-09-14 22:27:12

有个选择内容加版权声明的常见效果。。。感觉和你这个需求类似。。。

$('body').on('copy', function (e) {

  if (typeof window.getSelection == 'undefined') {

    return;
  }

  var body_element = document.body,
      selection = window.getSelection();

  if (('' + selection).length < 30) {

    return;
  }

  var newdiv = document.createElement('div');

  newdiv.style.position = 'absolute';

  newdiv.style.left = '-99999px';

  body_element.appendChild(newdiv);

  newdiv.appendChild(selection.getRangeAt(0).cloneContents());

  if (selection.getRangeAt(0).commonAncestorContainer.nodeName == 'PRE') {

    newdiv.innerHTML = '<pre>' + newdiv.innerHTML + '</pre>';
  };

  newdiv.innerHTML += '<br />著作权归作者所有。<br />商业转载请联系作者获得授权,非商业转载请注明出处。<br />原文: <a href="' + location.href + '">' + location.href + '</a> © abcde.com';

  selection.selectAllChildren(newdiv);

  window.setTimeout(function () {

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