Javascript 如何将我自己的值设置为dojo编辑器fontChoice插件?
我想使用dojo,但我想使用我自己的formatBlock选项集,即h1带有“我自己的本地化h1标题”,h4带有“我自己的本地化h4标题”Javascript 如何将我自己的值设置为dojo编辑器fontChoice插件?,javascript,dojo,editor,Javascript,Dojo,Editor,我想使用dojo,但我想使用我自己的formatBlock选项集,即h1带有“我自己的本地化h1标题”,h4带有“我自己的本地化h4标题” 如何做到这一点?实现这一点有多种方法。 一个是制作一个新的插件小部件,继承自dijit/_editor/plugins/FontChoice,在这个新插件中,您将能够处理本地化 另一种方法是下面的代码片段。这是非常直接的,但是不是非常好,因为它会改变页面所有dijit编辑器的区域设置。 如果你只有一个,或者如果所有的都应该是一样的,那么它就可以了 其原理与方
如何做到这一点?实现这一点有多种方法。 一个是制作一个新的插件小部件,继承自
dijit/_editor/plugins/FontChoice
,在这个新插件中,您将能够处理本地化
另一种方法是下面的代码片段。这是非常直接的,但是不是非常好,因为它会改变页面所有dijit编辑器的区域设置。
如果你只有一个,或者如果所有的都应该是一样的,那么它就可以了
其原理与方法相同,但我们在运行中插入FontChoice
,而不是创建新的小部件
require([“dojo/_base/lang”、“dijit/Editor”、“dijit/_Editor/plugins/FontChoice”、“dojo/domReady!”),函数(lang、Editor、FontChoice){
//这就是允许您本地化内容的原因
//首先复制原始方法
FontChoice.\u FontDropDown.prototype.postMixInPropertiesOriginal=FontChoice.\u FontDropDown.prototype.postMixInProperties;
//然后覆盖它
lang.extend(FontChoice.\u FontDropDown{
postMixInProperties:函数(){
//调用原始方法以不中断任何函数性
this.postMixInPropertiesOriginal();
//将现有字符串更改为已定位的字符串
lang.mixin(this.strings{
“无格式”:“本地化无”,
“p”:“本地化段落”,
“h1”:“本地化标题”,
“h2”:“本地化副标题”,
“h3”:“本地化副标题”,
“预处理”:“本地化预格式化”
});
}
});
//扩展插件后必须创建编辑器
var编辑器=新编辑器({
外部插件:['fontName','fontSize','formatBlock']
}“测试”);
editor.startup();
});代码>
这是一个更好的解决方案:
require(["dojo/aspect",...], function(aspect,...) {
aspect.after(fontChoice._FontDropDown.prototype, "postMixInProperties", function() {
lang.mixin(this.strings, {
"h1": "localized Heading",
"h2": "localized Subheading",
"h4": "localized Sub-subheading 4",
});
});
//....
});
@智能解决方案:)+1我必须将以下内容放入外部插件:{name:'dijit._editor.plugins.FontChoice',命令:'formatBlock',值:['h1','h4']},现在它可以实现我想要的:)