首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript execCommand("HiliteColor")取消突出显示

JavaScript execCommand("HiliteColor")取消突出显示
EN

Stack Overflow用户
提问于 2018-07-27 21:12:44
回答 1查看 2.1K关注 0票数 2

JavaScript execCommand("HiliteColor")通过添加跨度来很好地添加高亮显示,但我希望能够通过检查所选文本是否在高亮显示的跨度中来动态取消高亮显示文本。那么就有一个问题,就是在一个跨度中只有一半的选定文本。我尝试自己添加跨度,并尝试通过以下方式取消高亮显示它们:

代码语言:javascript
复制
document.getElementsByClassName('highlight').remove();

alert(window.getComputedStyle(document.getElementById("pages"), null).getPropertyValue('background-color'));

alert(document.getElementById("pages").style.backgroundColor);

看看我是否可以检查背景然后高亮显示,或者是否可以删除类高亮显示。

我的项目在codepen上:https://codepen.io/pokepimp007/pen/wxGKEQ

应答

我创建了一个函数,它在单击按钮时接受一个颜色参数。单击删除高亮显示按钮时,将发送参数color "transparent":

代码语言:javascript
复制
function Highlight(color) {
  document.designMode = "on";
  var sel = window.getSelection();
  sel.removeAllRanges();
  var range = document.createRange();
  range.setStart(editor.startContainer, editor.startOffset);
  range.setEnd(editor.endContainer, editor.endOffset);
  sel.addRange(range);
  if (!sel.isCollapsed) {
    if (!document.execCommand("HiliteColor", false, color)) {
      document.execCommand("BackColor", false, color);
    }
  }
  sel.removeAllRanges();
  document.designMode = "off";
}
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51558725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档