[JavaScript] 新:ワンクリックで特定の部分を範囲指定したい

要件は「ワンクリックで特定の部分を範囲指定したい」ですが、適当なコードで使っていたらGoogle Chromeから警告が来ました。

参考:もうaddRangeで範囲追加はできなくなるよ
https://www.chromestatus.com/feature/6680566019653632

たまに動かないことがあり、困ったなと思っていたら、海外知恵袋で解決策が書いてありました。よく文章を読んで見ていればわかったのですが、「範囲の追加」ができないわけで、範囲指定自体はできるようです。

今ある範囲をクリアしてから使ってね。と言っているだけでした。

function spotRange(_element) {
    var r = document.createRange();
    r.selectNodeContents(_element);
    var a = window.getSelection();
    a.removeAllRanges();
    a.addRange(r);
}

removeAllRangesを追加して、動くようになりました。

予め範囲指定してあると、getSelection でそれを読み取れるのがよろしくない、ということですかね。