簡體   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