Вставка изображения TinyMCE из пользовательского файлового браузера - PullRequest
0 голосов
/ 05 ноября 2019

Я использую пользовательский файловый браузер в своем проекте, и мне нужно использовать его в функции вставки изображений tinyMCE. Все, что у меня есть, это имя изображения и его URL (тот же домен). Моя цель состояла бы в том, чтобы поместить этот URL в поле ввода "Source" tinyMCE, так что в основном получаю объект DOM.

Я пытался:

tinymce.execCommand('mceInsertContent',false,'<img src="' + url + '" width="100%" height="auto"/>');

- это вроде работало, но тольковставьте изображение в активный редактор, и текущее окно вставки / редактирования изображения было полностью пустым после (очевидно). Я также попытался: получить блоб с HTTP-запросом, затем превратить блоб в файл и поместить этот файл в blobChace tinyMCE, как это описано здесь - у меня это вообще не сработало

var tinycb;       
//i call it like this(dont hate)
file_picker_callback: function (cb, value, meta) {
var input = document.createElement("input");
input.setAttribute("type", "text");
input.setAttribute("onclick", "selectcount = '1'; returnid = 'tinyMCE'; tinycb = " + cb +"; fileselector(null);");
//i call it like this(dont hate)
//when i select an image with the custom file selector ->
var blob;
//var url is a valid url to an image
var xhr = new XMLHttpRequest();
xhr.open("GET", url);
xhr.responseType = "blob";
xhr.onload = function() 
{
blob = xhr.response;
}
xhr.send();
var file = new File([blob], blob);
var reader = new FileReader();
reader.onload = function () {
var id = 'blobid' + (new Date()).getTime();
var blobCache =  tinymce.activeEditor.editorUpload.blobCache;
var base64 = reader.result.split(',')[1];
var blobInfo = blobCache.create(id, file, base64);
blobCache.add(blobInfo);
tinycb(blobInfo.blobUri(), { title: file.name });
//Everything is fine here for me, except tinycb() throws error : C is not defined
//I would like to avoid this solution and simply get the input field DOM object to be able to do sth like this:
var input = the DOM object
input.value = url;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...