私が持っているマークボタン UI上で、任意のユーザの選択が赤でマークされ、クリックします。ここでは問題ありません。私はこれを達成しますdocument.execCommand("insertHTML")
しかし、古い選択のマーキングの共通部分である新しい選択が作成された場合、古い選択の赤いマーキングが消えるという追加の要件があります。
例として:
次の画像では、これとテストがマークされています。今、私が最初から彼のテスを選択し、マークをクリックすると、これの古いマーキングとテストが消え、交差があるため、彼のテスのみがマークされるはずです。
コード:
const button = document.getElementById("button");
button.addEventListener('click', ()=>{
const s = window.getSelection();
const selectionStr = s.toString();
document.execCommand("insertHTML", false, `<span class="bg-red">${selectionStr}<span>`);
})
.bg-red {
background: red;
}
<div contenteditable="true">
this is testing this is testing this is testing
</div>
<button id="button">mark</button>
