У меня есть плагин, который позволяет применять 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');
}
})
});
}