如何将占位符属性添加到 CKEditor 的实例?
How do I add a placeholder attribute to an instance of CKEditor?
现在,使用 Alfonso's plugin,我可以在 config.js 中添加占位符属性。但是,由于我要添加到 config.js,这意味着所有实例都将具有相同的占位符文本,对吗?
好吧,我不希望我的 ckeditor 的所有实例都具有相同的占位符文本,因为我还注意到他还说:
The value can be set in the configuration or as an attribute of the replaced element
我认为这意味着我们可以将 "Type something..." 作为 ckeditor1 的占位符文本,将 "Blabla..." 作为 ckeditor2 的占位符文本。我怎么做?或者他不是这个意思?
我尝试了几种方法,包括
var ckeditor = CKEDITOR.replace('ckeditor1');
ckeditor.placeholder = 'Type sometheing....';
和
var config = [];
config['placeholder'] = 'some value'; //or config = [{placeholder:'some value'}]
CKEDITOR.replace("myeditor" , config );
在该特定页面内但无济于事...我还清除了缓存。
根据阿方索的网站,正确的方法是:
config['placeholder'] = 'some value';
CKEDITOR.replace("myeditor" , config );
我指的是属性:
<textarea name="editor" placeholder="Type here..."></textarea>
关于你的其他方法,配置是一个对象,所以这应该有效:
var config = {};
config.placeholder = 'some value';
CKEDITOR.replace("myeditor" , config );
CKEditor 对象有一个名为 instances
的属性,它存储所有实例。要保存一个实例,您只需将它添加到 instances
散列。
var someDomElement = X;
CKEDITOR.replace(someDomElement);
CKEDITOR.instances[someDomElementId];
var someOtherDomElement = Y;
CKEDITOR.replace(someOtherDomElement);
CKEDITOR.instances[someOtherDomElementId];
现在你有两个实例。您现在可以使用标准 API.
设置或执行任何 to/with 实例
CKEDITOR.instances[someDomElementId].CKEDITOR_API()
可能对其他人有帮助的快捷方式。我也很难让这个插件工作。原因是我使用的是旧版本的插件。我从这里下载它:
https://ckeditor.com/cke4/addon/confighelper 并且该页面可能也会让其他人感到困惑。
几乎所有来自 CKEditor 的插件都在下载列表的顶部显示最新版本。此外,当单击 "Download" 按钮时,它通常会下载最新版本的插件。这个插件不是这种情况。 "Download" 获取最旧的版本,最旧的版本也列在列表的第一位。
一个"Gotcha"我觉得值得一提
placeholdertext 插件似乎是一个不错的解决方案。与 ConfigHelper 插件相反,占位符文本不会进入 undo/redo 历史记录。
现在,使用 Alfonso's plugin,我可以在 config.js 中添加占位符属性。但是,由于我要添加到 config.js,这意味着所有实例都将具有相同的占位符文本,对吗?
好吧,我不希望我的 ckeditor 的所有实例都具有相同的占位符文本,因为我还注意到他还说:
The value can be set in the configuration or as an attribute of the replaced element
我认为这意味着我们可以将 "Type something..." 作为 ckeditor1 的占位符文本,将 "Blabla..." 作为 ckeditor2 的占位符文本。我怎么做?或者他不是这个意思?
我尝试了几种方法,包括
var ckeditor = CKEDITOR.replace('ckeditor1');
ckeditor.placeholder = 'Type sometheing....';
和
var config = [];
config['placeholder'] = 'some value'; //or config = [{placeholder:'some value'}]
CKEDITOR.replace("myeditor" , config );
在该特定页面内但无济于事...我还清除了缓存。
根据阿方索的网站,正确的方法是:
config['placeholder'] = 'some value';
CKEDITOR.replace("myeditor" , config );
我指的是属性:
<textarea name="editor" placeholder="Type here..."></textarea>
关于你的其他方法,配置是一个对象,所以这应该有效:
var config = {};
config.placeholder = 'some value';
CKEDITOR.replace("myeditor" , config );
CKEditor 对象有一个名为 instances
的属性,它存储所有实例。要保存一个实例,您只需将它添加到 instances
散列。
var someDomElement = X;
CKEDITOR.replace(someDomElement);
CKEDITOR.instances[someDomElementId];
var someOtherDomElement = Y;
CKEDITOR.replace(someOtherDomElement);
CKEDITOR.instances[someOtherDomElementId];
现在你有两个实例。您现在可以使用标准 API.
设置或执行任何 to/with 实例CKEDITOR.instances[someDomElementId].CKEDITOR_API()
可能对其他人有帮助的快捷方式。我也很难让这个插件工作。原因是我使用的是旧版本的插件。我从这里下载它: https://ckeditor.com/cke4/addon/confighelper 并且该页面可能也会让其他人感到困惑。
几乎所有来自 CKEditor 的插件都在下载列表的顶部显示最新版本。此外,当单击 "Download" 按钮时,它通常会下载最新版本的插件。这个插件不是这种情况。 "Download" 获取最旧的版本,最旧的版本也列在列表的第一位。
一个"Gotcha"我觉得值得一提
placeholdertext 插件似乎是一个不错的解决方案。与 ConfigHelper 插件相反,占位符文本不会进入 undo/redo 历史记录。