Пользовательский блок добавить новый элемент после успешной загрузки - PullRequest
0 голосов
/ 22 мая 2019

Я создаю пользовательский блок для поста WordPress.
Я не могу не отображать и сохранять элемент iframe после успешной загрузки.

Я хочу, чтобы после завершения загрузки тег iframe был добавлен, отображался и мог быть сохранен в сообщении.
Теперь, когда загрузка завершена, я не могу добавить тег iframe

registerBlockType:

title: i18n.__('Upload'), // The title of our block.
description: i18n.__('A custom block for upload.'), // The description of our block.
icon: 'upload', // Dashicon icon for our block. Custom icons can be added using inline SVGs.
category: 'common', // The category of the block.
attributes: {
mediaID: {
       type: 'number'
},
mediaURL: {
       type: 'string',
       source: 'attribute',
       selector: 'iframe',
       attribute: 'src'
},

Функция редактирования:

edit: function (props) {
            var attributes = props.attributes;

            var uploadVideo = function (media) {
                var form_data = new FormData();
                form_data.append('file', media.target.files[0]);
                $.ajax({
                    type: "POST",
                    contentType: false,
                    processData: false,
                    url: myScript.pluginsUrl + '/file.php',
                    data: form_data,
                    success: function (result) {
                        var data = JSON.parse(result);
                        return props.setAttributes({
                            mediaURL: data.url,
                            mediaID: data.id
                        });
                    }
                });
            };
            return [
                el('div', {className: props.className},
                    el('div', {className: 'form-input'},
                        el('input', {
                            onChange: uploadVideo,
                            type: 'file',
                            render: function () {
                                return el('iframe', {src: attributes.mediaURL})
                            }
                        })
                    ),
                )
            ]
        },

Функция сохранения:

save: function (props) {
            var attributes = props.attributes;

            return [
                el('div', {className: props.className},
                    el('iframe', {
                            src: attributes.mediaURL
                        },
                    )
                )
            ]
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...