Атрибут нормализации CKEditor5 при вставке - PullRequest
0 голосов
/ 09 июля 2020

У меня есть плагин, который позволяет применять myAttribute к текстовым узлам.

При вставке я хочу, чтобы вставляемый контент имел значение myAttribute целевого выбора и игнорировал myAttribute значение скопированного источника.

Пытаюсь изменить data.content при вставке, перебирая дочерние узлы и устанавливая или удаляя атрибут в зависимости от ситуации, но получаю сообщение об ошибке: e._removeAttribute is not a function.

Я собрал код вместе с помощью различных примеров, которые нашел в Интернете, и моя методика могла быть далека от ответа:

editor.plugins.get('Clipboard').on('inputTransformation', ( evt, data ) => {

  let attrValue = sel.getAttribute('myAttribute');
  const pastedContent = data.content // document fragment
  const pastedNodes = Array.from(pastedContent.getChildren());
  const writer = new UpcastWriter();

  pastedNodes.forEach(n => {
    if (attrValue) {
      writer.setAttribute(n, 'myAttribute', attrValue);
    } else {
      writer.removeAttribute(n, 'myAttribute');
    }
  })

  });
}
...