如何使用 javascript 获取所选文本的当前字体大小?

How do I get the current font size of selected text using javascript?

我在 div 上使用 contentededitable 并想为所选文本添加增大字体大小按钮。

选定的文本含义用光标突出显示。

为了运行 document.execCommand('fontsize', false, size); 我需要知道所选文本的大小,所以我可以将其增加 1。如何获取当前所选文本的字体大小?

我试过: var size = document.getSelection().fontSize.toString(); 但那不是布埃诺。我也试过 document.execCommand('increaseFontSize', true, 1) 假设它将增加一个整数,但没有任何反应,甚至没有错误。

我试过这个:

var el = document.getSelection();

var size = window.getComputedStyle(el, null).getPropertyValue('font-size');

但是我得到了错误 Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'

您可以这样确定父元素的font-size

const selection = Window.getSelection();
if (selection) { // make sure it doesn't error if nothing is selected
  const size = window.getComputedStyle(selection.anchorNode.parentElement, null).getPropertyValue('font-size');
}

Window.getSelection() returns a Selection object. On those objects, the property anchorNode 包含对 textNode 的引用,选择是其中的一部分。这反过来又具有通常的 parentElement 属性。从那里开始很容易。