繁体   English   中英

Tinymce.get和tinymce.activeEditor都返回null

[英]Tinymce.get and tinymce.activeEditor both return null

我有一个HTML中的tinymce textarea: <textarea id="customer_notes"></textarea>

在JS中我尝试访问这个textarea

tinymce.get('customer_notes').on("keyup", function(){ console.log("tiny"); })

要么

tinymce.activeEditor.on('keyup', function(){ console.log("keyup"); })

但是,两者都返回null。 我知道可能存在未在页面上加载元素的问题,因此无法访问。

但是,如果我输出console.log(tinymce.editors);我会尝试上面的任何一个语句console.log(tinymce.editors); 它输出一个包含我的textarea的数组,其id为“customer_notes”。

0: {…}, id: "customer_notes", isNotDirty: true, plugins: {…}, …}ustomer_notes: eN { id: "customer_notes", isNotDirty: true, plugins: {…}, …} length: 1 __proto__: Array(0)

我已经阅读了这个问题的其他几篇文章,但没有一个解决方案似乎适合我。 一个答案建议使用tinymce.editors[0]但这是未定义的?

提前致谢!

你的代码似乎工作正常。 如果您可以共享所有HTML和JS,那么我们可以确定问题所在。 与此同时,这是一个有希望帮助你的工作示例: JSFiddle

HTML:

<!DOCTYPE html>
<html>
<head>
  <script src="https://cloud.tinymce.com/5/tinymce.min.js"></script>
</head>
<body>
  <textarea id="customer_notes"></textarea>
</body>
</html>

JS:

$(function(){
  tinymce.init({ selector:'textarea' });

  tinymce.get('customer_notes').on("keyup", function(){
    console.log("tiny");
  });

  tinymce.activeEditor.on('keyup', function(){
    console.log("keyup");
  });
});

如果要捕获有关TinyMCE实例的事件,您可以直接在init({})函数中设置这些事件函数。

这是一个例子:

http://fiddle.tinymce.com/7Hgaab

您将看到init中有一个setup功能,该设置功能会自动访问您的editor对象,因此您可以在该setup功能中设置您的keyup事件功能。

要在init({})查看的代码是:

setup: function (editor) {
  editor.on('keyup', function (e) {
    console.log('A key was pressed: ', e.keyCode); 
  });
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM