Как получить имя текстовой области из SCeditor? - PullRequest
0 голосов
/ 19 апреля 2020

Я инициализирую SCEditor следующим образом:

var mytextarea = $('textarea[name="one"])[0];

sceditor.create(mytextarea, 
{
    format: 'xhtml',
    style: '../default.min.css',
    // ...
});

Теперь мне нужно получить имя текстовой области изнутри SCEditor. Моя цель: после того, как пользователь ввел текст в SCEditor или использовал пользовательский плагин , тогда имя / идентификатор текстовой области передается с новым содержимым во внешнее поле предварительного просмотра HTML с тем же идентификатором. (На странице есть несколько редакторов.)

Я не нашел способа получить имя текстовой области ("one") из SCEditor. Вот фрагмент кода плагина, который дает доступ к переменной editor:

// Insert-Formula Command
sceditor.command.set('insertformula', {
    // wysiswyg mode 
    exec: function(caller) {
       var editor = this;
       console.log(editor);  // cannot find the textarea's name here

API не раскрывает такую ​​функцию: https://www.sceditor.com/api/sceditor/

Я пытался понять исходный код (текстовая область передается как original в функции init ()), но я не мог найти способ вернуть текстовую область / оригинал: https://github.com/samclarke/SCEditor/blob/master/src/lib/SCEditor.js

Тогда я подумал, что могу связать имя после init с помощью редактора create () и получить к нему доступ позже, например:

sceditor.textarea_name = "one";

Но это тоже не работает.

Вот JSFiddle для тестирования: http://jsfiddle.net/kai_noack/0gLhtabq/10/

-

Обновление:

Я вижу, что в выводе консоли (jsfiddle) [[Scopes]] содержится имя. Может быть, к нему можно получить доступ?

console output sceditor

Мне нужно получить textarea#one part.

1 Ответ

0 голосов
/ 20 апреля 2020

Хорошо, я нашел хорошее решение:

Передайте имя текстовой области как id в методе create():

sceditor.create(mytextarea, 
{
    format: 'xhtml',
    style: '../default.min.css',
    // ...
    id: mytextarea_id,
});

И прочитайте его в плагине Sceditor, используя editor.opts.id:

// Insert-Formula Command
sceditor.command.set('insertformula', {
    // wysiswyg mode 
    exec: function(caller) {
       var editor = this;
       console.log(editor.opts.id);  // cannot find the textarea's name here

Готово 101

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...