javascript - HTML - 更改选择中文本的样式

标签 javascript html styles selection

是否可以更改所选文本的样式?

<p onmouseup="mouseUp()">This is a text for testing the selection</p>
<script>
function mouseUp() {
    var selection = window.getSelection();
    alert(selection.toString());
    //can I cahnge the color of e.g. the first character of the selection?
}
</script>

最佳答案

我已经遇到过这个问题,并且发现以下解释和实现很有用:

http://jsfiddle.net/VRcvn/

function surroundSelection(element) {
    if (window.getSelection) {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var range = sel.getRangeAt(0).cloneRange();
            range.surroundContents(element);
            sel.removeAllRanges();
            sel.addRange(range);
        }
    }
}

(取自:Wrapping a selected text node with span)

编辑: 也改变风格,这里是一个简单的例子

<p onmouseup="surroundSelection()">This is a text for testing the selection</p>
<script>

function surroundSelection() {
    var span = document.createElement("span");
    span.style.fontWeight = "bold";
    span.style.color = "green";

    if (window.getSelection) {
        var sel = window.getSelection();
        if (sel.rangeCount) {
            var range = sel.getRangeAt(0).cloneRange();
            range.surroundContents(span);
            sel.removeAllRanges();
            sel.addRange(range);
        }
    }
}

关于javascript - HTML - 更改选择中文本的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268137/

相关文章:

javascript - 如何将 JS 文件链接到 PHP 页面模板?

javascript - 在 HTML 音频标签中创建隐藏式字幕

html - CSS flex 元素的主轴对齐

javascript - 在移动站点上构建类似 iOS 的照片查看器

user-interface - 愚蠢且令人沮丧的跨浏览器 UI 问题

javascript - Angular 表达的动态变化不起作用

javascript - 在将 Squire.js 与 RequireJS 和 Mocha 一起使用时,如何避免引入全局泄漏?

javascript - 检查条件是否为真,如果是,则继续到下一个级别,如果不抛出警报消息

css - 使用css在同一行中的两个div

JavaFX:使用自定义样式表将文本颜色应用于 TableCell?