Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

269
Vistas
CKEditor4: cambiar event.data.defaultValue dentro de una promesa no funciona

Estoy tratando de modificar el antiguo complemento " pastebase64 " para cambiar el tamaño original de las imágenes pegadas, así que hice este nuevo código en pastebase64/plugin.js :

 (function () { 'use strict'; CKEDITOR.plugins.add('pastebase64', { init: init }); function init(editor) { if (editor.addFeature) { editor.addFeature({ allowedContent: 'img[alt,id,!src]{width,height};' }); } CKEDITOR.on('instanceReady', function(event) { event.editor.on('paste', resize); }); } async function resize(event) { if(event.data.dataTransfer.$.files.length > 0){ let files = event.data.dataTransfer.$.files; let imageType = /^image/; let files_array = Array.from(files); files_array.forEach(async file => { if(file.type.match(imageType)){ await file.arrayBuffer().then(arrayBuffer => { return new Blob([new Uint8Array(arrayBuffer)], {type: file.type }); }).then(blobOriginal => { return blobToBase64(blobOriginal); }).then(base64original => { return createImageBitmap(file, 120,120,120,120) }).then(imageBitmap => { let canvas = document.createElement('canvas'); canvas.width = imageBitmap.width; canvas.height = imageBitmap.height; canvas.getContext('bitmaprenderer') .transferFromImageBitmap(imageBitmap); return new Promise(resolve => { canvas.toBlob(blob => resolve(blob)); }); }).then(blob => { return blobToBase64(blob); }).then(novoBase64 => { event.data.dataValue.replace(event.data.defaultValue,novoBase64); }); } }); } } function blobToBase64(blob) { return new Promise((resolve, _) => { const reader = new FileReader(); reader.onloadend = () => resolve(reader.result); reader.readAsDataURL(blob); }); } })();

Pero no pasa nada, las únicas líneas en las que pude cambiar el contenido pegado fueron antes de la primera promesa: file.arrayBuffer().then(), después de eso, cualquier posibilidad de reemplazar o incluso establecer otro valor fue en vano.

Entonces, ¿cómo puedo lograr eso?

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda