javascript - 不起作用的方法 Selection.removeRange()

标签 javascript

HTML:

<p>
    <span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui aliquam quod aperiam veniam animi. Debitis iure sit incidunt sint dicta enim voluptatum inventore itaque cumque error. Neque voluptatem beatae fuga?</span>
    <span>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Qui aliquam quod aperiam veniam animi. Debitis iure sit incidunt sint dicta enim voluptatum inventore itaque cumque error. Neque voluptatem beatae fuga?</span>
</p>

<button>Remove range</button>

JavaScript:

var p = document.body.firstElementChild;

var rng, selectText;

p.addEventListener('mouseup', function() {
    rng = document.createRange();
    rng.selectNodeContents(p);
    selectText = window.getSelection();
    selectText.addRange(rng);
}, false);


document.body.lastElementChild.addEventListener('click', function() {
    selectText.removeRange(rng);
}, false);

Fiddle

我不明白为什么该方法不起作用 Selection.removeRange()?我们的想法是仅保留原始选择。

最佳答案

safarigoogle-chrome 中,您应该使用

selectText.removeAllRanges(rng)

工作中fiddle

关于javascript - 不起作用的方法 Selection.removeRange(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27191467/

相关文章:

javascript - 动态访问Javascript数组

javascript - 从 jQueryUI 对话框中删除标题栏?

javascript - (Laravel + Ajax) url 错误并且 AJAX 不起作用

javascript - 使用 bootstrap css 设计 nouislider 的技巧

javascript - while(true) 与 setInterval(function(),0)

javascript - 如何在 javascript DOM api 中获取具有给定条件的子节点?

javascript - 使用 JavaScript 的正则表达式中的 ASterisk 或数字

javascript - $.get 调用外部的变量值尚未设置

javascript - 使用否定守卫

javascript - 如何仅在特定的 css 类上有条件地应用 Javascript?