Вставка картинки после закрытия приложения
От: DenProg https://yutovo.com
Дата: 22.11.25 18:56
Оценка:
Если в каком-то приложении скопировать в буфер картинку, потом это приложение закрыть, то этот код:
const data = await navigator.clipboard.read();
console.log(data);

выведет только тип "text/plain". И картинку вставить невозможно.
Тем не менее онлайн редекторы типа https://www.tiny.cloud/docs/tinymce/latest/basic-example/ это делают. Как?
Re: Вставка картинки после закрытия приложения
От: DenProg https://yutovo.com
Дата: 23.11.25 07:03
Оценка:
Элемент "text/plain" полный содержит путь к файлу. Если читается сам файл, то:
1. Разве вебстраница может так просто прочитать произвольный файл?
2. Если я копирую путь и вставляю, он вставляется как строка. Как тогда распознается когда надо скачать файл, а когда не надо?
Re: Вставка картинки после закрытия приложения
От: bnk СССР http://unmanagedvisio.com/
Дата: 23.11.25 17:01
Оценка:
Здравствуйте, DenProg, Вы писали:

DP>Если в каком-то приложении скопировать в буфер картинку, потом это приложение закрыть, то этот код:


DP>
DP>const data = await navigator.clipboard.read();
DP>console.log(data);
DP>


DP>выведет только тип "text/plain".


Это не так. Все форматы сохраняются даже после закрытия приложения.
Re[2]: Вставка картинки после закрытия приложения
От: DenProg https://yutovo.com
Дата: 23.11.25 18:38
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, DenProg, Вы писали:


DP>>Если в каком-то приложении скопировать в буфер картинку, потом это приложение закрыть, то этот код:


DP>>
DP>>const data = await navigator.clipboard.read();
DP>>console.log(data);
DP>>


DP>>выведет только тип "text/plain".


bnk>Это не так. Все форматы сохраняются даже после закрытия приложения.


Я пишу то, что происходит. Может и приложение очищает, я не знаю.
Re[2]: Вставка картинки после закрытия приложения
От: Stanislav V. Zudin Россия  
Дата: 23.11.25 18:54
Оценка: 1 (1)
Здравствуйте, bnk, Вы писали:

DP>>Если в каком-то приложении скопировать в буфер картинку, потом это приложение закрыть, то этот код:


DP>>
DP>>const data = await navigator.clipboard.read();
DP>>console.log(data);
DP>>


DP>>выведет только тип "text/plain".


bnk>Это не так. Все форматы сохраняются даже после закрытия приложения.


Не всегда.
В винде есть возможность создавать содержимое клипборда on demand. Т.е. пока кто-то реально не запросит данные, они не создаются. Если приложение-источник закрыть, то данные потеряются.
Excel активно пользуется этой фичей.
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: Вставка картинки после закрытия приложения
От: DenProg https://yutovo.com
Дата: 23.11.25 19:01
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, bnk, Вы писали:


DP>>>Если в каком-то приложении скопировать в буфер картинку, потом это приложение закрыть, то этот код:


DP>>>
DP>>>const data = await navigator.clipboard.read();
DP>>>console.log(data);
DP>>>


DP>>>выведет только тип "text/plain".


bnk>>Это не так. Все форматы сохраняются даже после закрытия приложения.


SVZ>Не всегда.

SVZ>В винде есть возможность создавать содержимое клипборда on demand. Т.е. пока кто-то реально не запросит данные, они не создаются. Если приложение-источник закрыть, то данные потеряются.
SVZ>Excel активно пользуется этой фичей.

У меня Ubuntu 24 если это важно.
Re[4]: Вставка картинки после закрытия приложения
От: Stanislav V. Zudin Россия  
Дата: 23.11.25 19:37
Оценка:
Здравствуйте, DenProg, Вы писали:

SVZ>>В винде есть возможность создавать содержимое клипборда on demand. Т.е. пока кто-то реально не запросит данные, они не создаются. Если приложение-источник закрыть, то данные потеряются.

SVZ>>Excel активно пользуется этой фичей.

DP>У меня Ubuntu 24 если это важно.


А что показывает xclip?
_____________________
С уважением,
Stanislav V. Zudin
Re[5]: Вставка картинки после закрытия приложения
От: DenProg https://yutovo.com
Дата: 24.11.25 08:46
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, DenProg, Вы писали:


SVZ>>>В винде есть возможность создавать содержимое клипборда on demand. Т.е. пока кто-то реально не запросит данные, они не создаются. Если приложение-источник закрыть, то данные потеряются.

SVZ>>>Excel активно пользуется этой фичей.

DP>>У меня Ubuntu 24 если это важно.


SVZ>А что показывает xclip?


Что там только текст:
➜ debug gitdevelop) ✗ xclip -o -selection clipboard -t TARGETS -o
TIMESTAMP
TARGETS
MULTIPLE
SAVE_TARGETS
UTF8_STRING
COMPOUND_TEXT
TEXT
STRING
text/plain;charset=utf-8
text/plain

Собственно вопрос остался: как тогда редактор на вебстранице подхватывает картинку после закрытия приложения?
Re[6]: Вставка картинки после закрытия приложения
От: Stanislav V. Zudin Россия  
Дата: 24.11.25 09:29
Оценка:
Здравствуйте, DenProg, Вы писали:

SVZ>>А что показывает xclip?


DP>Что там только текст:

DP>➜ debug gitdevelop) ✗ xclip -o -selection clipboard -t TARGETS -o
DP>TIMESTAMP
DP>TARGETS
DP>MULTIPLE
DP>SAVE_TARGETS
DP>UTF8_STRING
DP>COMPOUND_TEXT
DP>TEXT
DP>STRING
DP>text/plain;charset=utf-8
DP>text/plain

DP>Собственно вопрос остался: как тогда редактор на вебстранице подхватывает картинку после закрытия приложения?


А при запущенном вышеупомянутом приложении в клипборде есть что-то, помимо текста?

DP>2. Если я копирую путь и вставляю, он вставляется как строка. Как тогда распознается когда надо скачать файл, а когда не надо?


К.О.: Надо сравнивать, что попадает в клипборд при вставке из приложения и при вставке вручную. Все дополнительные секции. Возможно где-то есть что-то ключевое.
Кстати, картинку можно вставить в буфер и как base64.

У тебя xclip показывает две текстовые секции. В них данные совпадают?
_____________________
С уважением,
Stanislav V. Zudin
Re[7]: Вставка картинки после закрытия приложения
От: DenProg https://yutovo.com
Дата: 24.11.25 11:23
Оценка: 3 (1)
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, DenProg, Вы писали:


SVZ>>>А что показывает xclip?


DP>>Что там только текст:

DP>>➜ debug gitdevelop) ✗ xclip -o -selection clipboard -t TARGETS -o
DP>>TIMESTAMP
DP>>TARGETS
DP>>MULTIPLE
DP>>SAVE_TARGETS
DP>>UTF8_STRING
DP>>COMPOUND_TEXT
DP>>TEXT
DP>>STRING
DP>>text/plain;charset=utf-8
DP>>text/plain

DP>>Собственно вопрос остался: как тогда редактор на вебстранице подхватывает картинку после закрытия приложения?


SVZ>А при запущенном вышеупомянутом приложении в клипборде есть что-то, помимо текста?


DP>>2. Если я копирую путь и вставляю, он вставляется как строка. Как тогда распознается когда надо скачать файл, а когда не надо?


SVZ>К.О.: Надо сравнивать, что попадает в клипборд при вставке из приложения и при вставке вручную. Все дополнительные секции. Возможно где-то есть что-то ключевое.

SVZ>Кстати, картинку можно вставить в буфер и как base64.

SVZ>У тебя xclip показывает две текстовые секции. В них данные совпадают?


Если приложение (Gwenview) запущено, то при копировании есть картинки:
➜ debug gitdevelop) ✗ xclip -o -selection clipboard -t TARGETS -o
application/x-qt-image
application/x-kde-suggestedfilename
text/uri-list
text/x-moz-url
text/plain
application/x-kde-cutselection
image/png
image/avif
image/bmp
image/bw
image/cur
image/eps
image/epsf
image/epsi
image/heic
image/heif
image/icns
image/ico
image/jpeg
image/jpg
image/jxl
image/pbm
BITMAP
image/pcx
image/pgm
image/pic
image/ppm
PIXMAP
image/qoi
image/rgb
image/rgba
image/sgi
image/tga
image/tif
image/tiff
image/wbmp
image/webp
image/xbm
image/xpm
TARGETS
MULTIPLE
TIMESTAMP
SAVE_TARGETS

Если закрыто, то:
➜ debug gitdevelop) ✗ xclip -o -selection clipboard -t TARGETS -o
text/uri-list
text/x-moz-url
text/plain
application/x-kio-metadata
application/vnd.portal.filetransfer
application/x-kde-cutselection
application/x-kde-onlyReplaceEmpty
TARGETS
MULTIPLE
TIMESTAMP
SAVE_TARGETS

Значения всех типов в этот момент:
➜ debug gitdevelop) ✗ for t in $(xclip -selection clipboard -t TARGETS -o); do
echo "===== $t ====="
xclip -selection clipboard -t "$t" -o 2>/dev/null
echo
done
===== text/uri-list =====
file:///home/denis/programs/Math/images/standard/export_html.png

===== text/x-moz-url =====
file:///home/denis/programs/Math/images/standard/export_html.png

===== text/plain =====
file:///home/denis/programs/Math/images/standard/export_html.png
===== application/x-kio-metadata =====

===== application/vnd.portal.filetransfer =====
5446759512343280401
===== application/x-kde-cutselection =====
0
===== application/x-kde-onlyReplaceEmpty =====
1
===== TARGETS =====
text/uri-list
text/x-moz-url
text/plain
application/x-kio-metadata
application/vnd.portal.filetransfer
application/x-kde-cutselection
application/x-kde-onlyReplaceEmpty
TARGETS
MULTIPLE
TIMESTAMP
SAVE_TARGETS

===== MULTIPLE =====

===== TIMESTAMP =====
104438261

===== SAVE_TARGETS =====

Видимо через application/vnd.portal.filetransfer происходит обмен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.