Tinymce.get和tinymce.activeEditor都返回null

时间:2019-05-09 23:54:11

标签: javascript html tinymce

我有一个tinymce文本区域 在HTML中: <textarea id="customer_notes"></textarea>

在JS中,我尝试使用

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

OR

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

但是,两者都返回null。我了解该元素可能尚未在页面上加载,因此无法访问。

但是在我尝试的任何一条语句的上方,如果我输出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]来回答,但这是未定义的吗?

谢谢!

2 个答案:

答案 0 :(得分: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");
  });
});

答案 1 :(得分:0)

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

这里是一个例子:

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

您会看到init中有一个setup函数,该设置函数会自动访问您的editor对象,因此您可以在其中{{1 }}功能。

要在keyup中查看的代码是:

setup