-1

我想知道如何在单击按钮后使用 更改所选文本的字体样式window.getSelection()

例如,假设我们有以下短语:

你好世界!

如果我只是从中选择字符串ell,然后单击一个按钮,它将返回(在这种情况下,例如,粗体类型):

世界你好!

那么,我该怎么做呢?我的主要问题是:我应该转换什么变量类型来改变字体样式window.getSelection(),因为它返回一个对象,如果我这样做了.toString(),它不会有太大帮助。

4

2 回答 2

2

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

        if (window.getSelection) {
            var sel = window.getSelection();
            if (sel.rangeCount) {
                var range = sel.getRangeAt(0).cloneRange();
                range.surroundContents(span);
                sel.removeAllRanges();
                sel.addRange(range);
            }
        }
    }
<input type="button" onclick="surroundSelection()" value="Surround">
    <div contenteditable="true">Hello World</div>

于 2019-06-17T02:05:17.857 回答
0

您正在寻找将突出显示的文本包围到您添加新样式的新节点中。看看这个答案如何用元素包裹/环绕突出显示的文本

于 2019-06-17T01:39:45.863 回答