javascript - 网页上不同 div/span 的不同选择颜色
问题描述
我正在尝试构建一个 Chrome 插件,允许用户在新闻网站上选择文本并单击Share
按钮将该信息发送到服务器。当用户从故事中选择文本时,我会应用一种颜色。单击按钮时,插件会识别选择的字符数是否超过 280。如果超过,则会显示警告消息,同时应该使用不同的颜色选择溢出的文本。后者没有发生。这是内容脚本中的代码:
var article_selected_text = window.getSelection().toString();
if (length > 280) {
sel = window.getSelection();
if (sel.rangeCount && sel.getRangeAt) {
range = sel.getRangeAt(0);
}
document.designMode = "on";
var overflowRange = document.createRange();
overflowRange.setStart(sel.anchorNode, sel.anchorOffset + 280);
overflowRange.setEnd(sel.focusNode, sel.focusOffset);
var newNode = document.createElement("span");
newNode.setAttribute('class', 'overflow-selection');
overflowRange.surroundContents(newNode);
document.designMode = "off";
}
这是用于选择的CSS:
::selection {
background: #E2F4D3;
}
.overflow-selection::selection {
background: #E5E5E5;
}
overflowRange
单击按钮时,不会立即看到的选择颜色。但是,如果再次选择相同的文本,最多 280 个字符的文本会被选中,#E2F4D3
其余的会被选中#E5E5E5
。为简洁起见,假设一次只选择一个或更少的段落。
解决方案
推荐阅读
- angular - 至少有一个文件需要以 Angular 11 反应形式进行验证
- angular - Angular websokcet 和 behaviorSubject 单元测试
- javascript - 材质ui网格将内容方向更改为行
- c++ - 没有以太网连接,但 SSL_write() 返回 true
- python - PyQt5 中的字体无法正确显示
- html - 打开随机生成的画廊的显示图像
- html - wp插件中的模态图像
- machine-learning - Word2Vec 模型中的 windowSize
- nativescript - 在无限滚动的繁重列表负载上崩溃 Nativescript 应用程序
- android - 如何将数据从 BroadcastReceiver 传递到另一个类?