Javascript 如何更改tinymce 5中toollbar菜单按钮项的文本?
我最近从tinymce 4迁移到tinymce 5,我不知道如何创建类似按钮的下拉菜单并根据当前选择更改其文本 基本上,我希望有一些像默认字体或标题按钮Javascript 如何更改tinymce 5中toollbar菜单按钮项的文本?,javascript,typescript,tinymce,tinymce-5,Javascript,Typescript,Tinymce,Tinymce 5,我最近从tinymce 4迁移到tinymce 5,我不知道如何创建类似按钮的下拉菜单并根据当前选择更改其文本 基本上,我希望有一些像默认字体或标题按钮 下面是我如何创建一个下拉按钮,该按钮将使用包装所选文本,但不确定是否有任何直接方法可以实现这一点,因为在项目的存储库中已经存在一个与您具有相同要求的 以下是该项目的一位贡献者的回复: 目前没有办法做到这一点,抱歉,按钮可以做到这一点 允许此(例如fontselect)当前仅使用内部API。是的 想公开给其他人使用,但我们还没有 计划好了要做的工
下面是我如何创建一个下拉按钮,该按钮将使用
包装所选文本,但不确定是否有任何直接方法可以实现这一点,因为在项目的存储库中已经存在一个与您具有相同要求的
以下是该项目的一位贡献者的回复:
目前没有办法做到这一点,抱歉,按钮可以做到这一点
允许此(例如fontselect)当前仅使用内部API。是的
想公开给其他人使用,但我们还没有
计划好了要做的工作,所以我将把它标记为一个特性
请求
注意:如果您是商业客户,我建议您将此记录下来
通过我们的支持渠道请求功能,因为它将收到更多
注意/优先于GitHub功能请求
不确定是否有任何直接的方法来实现这一点,因为在项目的存储库中已经存在一个与您具有相同需求的
以下是该项目的一位贡献者的回复:
目前没有办法做到这一点,抱歉,按钮可以做到这一点
允许此(例如fontselect)当前仅使用内部API。是的
想公开给其他人使用,但我们还没有
计划好了要做的工作,所以我将把它标记为一个特性
请求
注意:如果您是商业客户,我建议您将此记录下来
通过我们的支持渠道请求功能,因为它将收到更多
注意/优先于GitHub功能请求
addLanguageBtn()
{
let lngBtn = editor.ui.registry.addMenuButton('languageBtn', {
text: 'Language',
fetch: (callback) => {
let items: any = [
{text: 'French', value: 'fr', type: 'menuitem'},
{text: 'German', value: 'de', type: 'menuitem'},
{text: 'Spanish', value: 'es', type: 'menuitem'},
];
items.forEach(item => {
item.onAction = () => {
let currentNode = editor.selection.getNode();
if (currentNode.tagName.toLocaleLowerCase() !== 'body')
{
currentNode.setAttribute('lang', item.value);
}
else
{
let textToWrap = editor.selection.getContent();
let wrappedContent = `<span lang='${item.value}'>${textToWrap}</span>`;
editor.selection.setContent(wrappedContent);
}
}
});
callback(items);
},
setup(ed)
{
let lngButton = this.addLanguageBtn(ed);
ed.on('NodeChange', function (ev) {
if (!lngButton)//No button
{
return;
}
let lang = ev.element.getAttribute('lang');
lngButton.text = lang; // <==== This does not work, value is modified but UI is not updated