Javascript 在Fabric JS上大写文本输入

Javascript 在Fabric JS上大写文本输入,javascript,html,event-handling,html5-canvas,fabricjs,Javascript,Html,Event Handling,Html5 Canvas,Fabricjs,我有一个HTML5画布,我打算在上面写作。我正在使用FabricJS。但是,我希望文本输入是大写的,而用户不必使用“caps lock” 我试过了 textbox.hiddenTextarea.autoCapitalize=“on” 及 设textbox=new fabric.IText(“”{ textAlign:“居中”, 自动资本化:“开” } 我甚至试过: textbox.hiddenTextarea.onkeyup=(e)=>{ e、 target.value=e.target.val

我有一个HTML5画布,我打算在上面写作。我正在使用FabricJS。但是,我希望文本输入是大写的,而用户不必使用“caps lock”

我试过了

textbox.hiddenTextarea.autoCapitalize=“on”

设textbox=new fabric.IText(“”{ textAlign:“居中”,
自动资本化:“开”

}

我甚至试过:

textbox.hiddenTextarea.onkeyup=(e)=>{ e、 target.value=e.target.value.toUpperCase();}

什么都不管用。我想要实现的目标的正确方法是什么?或者有什么破解方法吗?请给我指出正确的方向。

你可以使用这种语法。 那么请获取activeObject

activeObject.set('fontCharacterStyle', 'Caps');

我创建了IText的子类,允许将textTransformation设置为大写:

const TransformableText = fabric.util.createClass(fabric.IText, {
  _splitTextIntoLines: function() {
    const transformedText = this.textTransform === 'uppercase' ? this.text.toUpperCase() : this.text;

    return this.callSuper('_splitTextIntoLines', transformedText);
  },
});
可以用作:

const textbox = new TransformableText("", { textTransform: "uppercase" });

我也在尝试这样做,但我不认为fabric.js IText上有autoCapitalize属性。在文档中没有At list。该属性是从哪里获得的?它不起作用,您有关于fabricjs上此属性的文档吗?@ThoBuiNgoc感谢评论,但亲爱的,我在fabricjs 3.1.0的项目中使用了相同的代码rsion,它正在为meDo工作。您需要自定义fabricjs来使用此属性设置?我在fabricjs源代码中查找此属性,但找不到此属性。您能给我一个演示代码来解决此问题吗?谢谢!我没有做任何事或自定义,我刚刚为我的项目选择了fabricjs 3.1.0,只是简单地获得了activ文本的EOObject,并使用此代码.activeObject.set('fontCharacterStyle','Caps');