TinyMCE 5.2. Как ссылаться на элементы диалога в плагине - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь изменить плагин TinyMCE link (plugin. js), чтобы адаптировать его к проекту, в котором я работаю.

Я не могу скрыть / показать элемент в модальном окне (Dialog) подключаемого модуля ссылки. (Я не могу ссылаться на элементы, поскольку вижу, что их идентификаторы меняются в новом исполнении )

Отредактировано: (По крайней мере, я хотел бы знать, как ссылаться на в диалоговом окне. Предоставленное «имя» не существует во входах и в полях выбора (как я вижу в исходном коде), а их идентификаторы генерируются случайным образом при каждом новом запросе страницы. Если бы я мог ссылаться на элементы, я мог бы взять другие способы найти решение)

Я добавил поле выбора под названием «тип ссылки» в диалоговое окно подключаемого модуля ссылки. Если его выбранное значение - «внутреннее», то входной текст URL-адреса должен скрывать и отображать другое поле со списком, называемое «сущностями». Если, с другой стороны, выбран «внешний», то скройте поле со списком «сущности» и покажите поле ввода «url»

Я включил функцию (в ссылку / плагин. js), которая является вызывается в замыканиях onchange, пытаясь получить его с помощью методов DOM, но безуспешно.

var onTypeLinkChange = function(data) {
     //data are the modal window elements
     if ( data.linktype == 'intlink' ) {
         tinymce.DOM.hide(data.url);
         tinymce.DOM.show(data.entities);
     }
     else {
         tinymce.DOM.hide(data.entities);
         tinymce.DOM.show(data.url);
     }          
     return Option.none();
  }
  
  var onChange = function (getData, change) {
    if (change.name === 'linktype') {
      return onTypeLinkChange(getData());
    } else if (change.name === 'url') {
      return onUrlChange(getData());
   [...]
  };
  return { onChange: onChange };
};

1 Ответ

0 голосов
/ 26 июня 2020

После исследования, как получить доступ к элементам в диалоге, я думаю, что могу сделать вывод, что это невозможно. Кроме того, в идеале также необходимо было скрыть / показать метки (все, что связано с компонентом в строке)

Поэтому я выбрал доступ к ним через CSS, используя jQuery . Это не то, чего я хотел, но это сработало.

var onTypeLinkChange = function(data) {
    if ( data.linktype == 'intlink' ) {
        //hides row (label and input)
        $('.tox-dialog__body-content .tox-form__group').eq(1).hide();
    }
    else {
        $('.tox-dialog__body-content .tox-form__group').eq(1).show();
    }
    return Option.none();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...