可以使用`Selection`和`Range` API来替代`Document.execCommand()`。这些API提供了更多的灵活性和控制,可以更好地满足您的需求。
例如,以下是一个使用`Selection`和`Range` API来设置标题的示例:
```
function setHeader(headerType) {
const selection = window.getSelection();
if (selection.rangeCount > 0) {
const range = selection.getRangeAt(0);
const header = document.createElement(headerType);
header.appendChild(range.extractContents());
range.insertNode(header);
}
}
```
在这个示例中,我们首先获取当前选区的`Selection`对象,并检查是否有任何范围。然后,我们从范围中提取内容,并将其插入到新创建的标题元素中。最后,我们将标题元素插入到范围中。
请注意,这只是一个简单的示例,您可以根据自己的需求进行修改和扩展。