Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

220
Visualizações
How add audio(custom) tag in ckeditor5

Plugin:

export default class AudioUploader extends Plugin {

  static get pluginName() {
    return 'AudioUploader';
  }

  static get requires() {
    return [];
  }

  init() {
    const editor = this.editor;
    const schema = editor.model.schema;

    schema.register('audio', {
      allowIn: ['$root', '$block', 'blockQuote', 'paragraph'],
      isBlock: true,
      allowAttributes: ['controls', 'src'],
    });

    editor.conversion.elementToElement({
      model: 'audio',
      view: {
        name: 'audio',
      },
    });

    editor.conversion.for( 'dataDowncast' ).elementToElement({
      model: 'audio',
      view: {
        name: 'audio',
      },
    });

    editor.conversion.for( 'upcast' ).elementToElement({
      model: 'audio',
      view: {
        name: 'audio',
      },
    });

    editor.ui.componentFactory.add('AudioUploader', () => {
      const view = new FileDialogButtonView();

      view.buttonView.set({
        tooltip: 'Добавить аудио',
        icon: MusicIcon,
      });

      view.on('done', (evt, files) => {
        getBase64(Array.from(files)[0], (audio) => {
          editor.model.change(writer => {
            const elem = writer.createElement('audio', {
              src: audio,
              controls: true,
            });

            editor.model.insertContent(elem, editor.model.document.selection.getFirstPosition());
          });
        });
      });

      return view;
    });
  }
}

enter image description here

enter image description here

If you insert just text(writer.insertText('some text', editor.model.document.selection.getFirstPosition());), then everything will be inserted correctly.

Everything is correct in the ckeditor5 inspector. I don’t understand the philosophy of adding arbitrary tags to the editor.

Why isn't it showing up in the editor? Why is the content not correct in console?

about 4 years ago · Juan Pablo Isaza
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda