我的内容区域中有此内容,并且想要切换所选文本的颜色。但是 Firefox 和 edge-chrome 的双击是有区别的。
$(".classWrapper").on("click",function(){
let param=$(this).attr("data-param");
let elementTag=$(this).attr("data-tag");
let classes="";
let result="";
let text="";
let sel = window.getSelection();
let ranges = [];
for(let i = 0; i < sel.rangeCount; i++) {
ranges[i] = sel.getRangeAt(i);
};
let range = sel.getRangeAt(0);
let start = range.startOffset;
let end = range.endOffset;
if (range > "" ) {
let tagName=sel.anchorNode.parentNode.tagName;
classNames=sel.anchorNode.parentNode.getAttribute("class");
// firefox finds a DIV - although the word was surrounded with a SPAN
// Chrome shows a SPAN - so i can do further things
alert(tagName);
if (tagName == "SPAN") {
// i can remove or change the class
}
})
我的问题只出现在 Firefox 上!双击选择一个单词 - firefox 无法识别现有的 SPAN。用鼠标选择单词 - firefox 识别 SPAN。
双击选择单词“dolor”并指定“text-danger” FIREFOX:
Lorem ipsum dolor sit amet, <span class="text-danger">consectetur </span>adipisicing elit, sed do eiusmod hallo
重复这个,firefox 做这个:
Lorem ipsum <span class="text-danger"><span class="text-danger">dolor </span></span>sit amet, consectetur adipisicing elit, sed do eiusmod hallo
与 Chrome 相同(第一选择):
Lorem ipsum <span class="text-danger">dolor </span>sit amet, consectetur adipisicing elit, sed do eiusmod hallo
重复这个(这也是我在 FF 中想要的)
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod hallo