如何使用 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
属性。从那里开始很容易。
我在 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
属性。从那里开始很容易。