检测和操作 CKEditor 区域

发布于 2024-12-05 04:25:46 字数 729 浏览 0 评论 0原文

我需要编写一个 javascript 函数,该函数可以查看页面(CKEditor)上的所见即所得(CKEditor),该页面在使用 Drupal WYSIWYG 模块加载后呈现。我在使用 jQuery 时遇到困难,甚至找不到编辑器。

$(textarea#textarea-id).change 或 .keyup 不执行任何操作。

我可以这样做:

console.log(CKEDITOR.instances);

这至少向我展示了 CKEditor 附加到的实例。之后我似乎无法引用任何内容:

CKEDITOR.instances.myinstance-name 或 CKEDITOR.instances[0] 都返回未定义。

我已经转了两个小时了,不知道还能尝试什么。

我想做的就是当用户键入(keyup)时,计算输入的字符数。如果输入大于一定长度,我想在文本中强制换行。

我该如何实施呢?我认为这会相当简单。

使用我见过的其他示例:

for (var i in CKEDITOR.instances) {
  CKEDITOR.instances[i].on('change', function() {alert('test 1 2 3')});
}

导致没有警报。

编辑器正在 iframe 中加载/显示(通过 Drupal 中的 CKEditor/WYSIWYG)。

I need to write a javascript function that can look at the WYSIWYG on the page (CKEditor) that is rendered after the page loads with the Drupal WYSIWYG module. I am having difficulty using jQuery even finding the editor.

$(textarea#textarea-id).change or .keyup do nothing.

I can do this:

console.log(CKEDITOR.instances);

That at least shows me the instance where CKEditor is attaching itself to. I can't seem to reference anything after that:

CKEDITOR.instances.myinstance-name or CKEDITOR.instances[0] both return undefined.

I've gone in circles for 2 hours now and not sure what else to try.

All I want to do is when the user is typing (keyup), count the characters input. If the input is greater than a certain length, I want to force a line break right in the text.

How can I go about implementing this? I thought it would be fairly straightforward.

Using other examples I have seen:

for (var i in CKEDITOR.instances) {
  CKEDITOR.instances[i].on('change', function() {alert('test 1 2 3')});
}

Resulted in no alert.

The editor is being loaded/displayed in an iframe (via CKEditor/WYSIWYG in Drupal).

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

墨落成白 2024-12-12 04:25:46

有一个插件可以为 CKEditor 提供 onChange 事件,您可以找到它(以及说明)这里

它建议使用这样的代码:

editor.on( 'saveSnapshot', function(e) { somethingChanged(); });

There's a plugin available that provides an onChange event for CKEditor, you can find it (along with instructions) here.

It suggests using code like this:

editor.on( 'saveSnapshot', function(e) { somethingChanged(); });
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文