gpt4 book ai didi

javascript - 更改 CKEditor 中的语言值

转载 作者:行者123 更新时间:2023-11-28 09:02:55 24 4
gpt4 key购买 nike

我正在尝试更改语言定义的值。我需要在创建编辑器实例的情况下并在某些条件下执行此操作。

我不想更改语言文件,因为该文件本身就很好,而且同一网站上的其他编辑器不需要特定的修改。

有人可以帮助我吗?我正在使用 CKEDITOR 3.6.1

$("form textarea").each(function()
{
var name = $(this).attr("name");
var instance = CKEDITOR.instances[name];
if(instance)
{
CKEDITOR.instances[name].destroy(true)
}

CKEDITOR.config.format_tags = 'h1;p';

CKEDITOR.config.format_p = { element : 'p', attributes : { 'class' : 'my_class' } };

//if(condition) CKEDITOR.config.lang.es.tag_h1 = "My special header";
//if(condition) CKEDITOR.lang.es.tag_h1 = "My special header";

CKEDITOR.replace(name);
});

最佳答案

修改格式插件的代码,添加beforeInit函数:

CKEDITOR.plugins.add( 'format', {
requires: 'richcombo',
beforeInit: function( editor ) {
editor.lang.format.tag_h1 = 'Moooooooo!';
},
init: function( editor ) {
...

在此函数中,您可以在下面的 init() 中生成、插入和显示标签和内容时修改所有语言条目。您可以使用任何类型的条件来更改此处的 lang 条目。

<小时/>

另一个解决方案:更困难但全局性。有了这个,您可以从一个地方覆盖所有插件,而无需触及源代码:

// Save the old CKEDITOR.plugins.load
var orgLoad = CKEDITOR.plugins.load;

// Overwrite CKEDITOR.plugins.load
CKEDITOR.plugins.load = function() {
// Save the old callback argument.
var oldCallback = arguments[ 1 ];

// Overwrite the old callback argument.
arguments[ 1 ] = function( plugins ) {
// Modify the plugin by adding beforeInit to the definition.
plugins.format.beforeInit = function( editor ) {
editor.lang.format.tag_h1 = 'Moooooooo!';
};

// Call the old callback.
oldCallback.call( this, plugins );
};

// Call old CKEDITOR.plugins.load
orgLoad.apply( this, arguments );
};

关于javascript - 更改 CKEditor 中的语言值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17475263/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com