Это, кажется, обеспечивает URL в Firefox:
"use strict";
window.addEventListener("paste", e=> {
let cd = e.clipboardData;
if( cd.items.length == 2) {
cd.items[0].getAsString( parseFragment)
}
function parseFragment( html) {
let url = "";
html.replace( /src\s*=\s*"(.*)"/, (match, p0) => (url = p0) )
console.log( url);
}
});
<div contentEditable style="border:thick dotted red; height: 100px; width: 200px">
</div>
Однако
Код был получен методом проб и ошибок и царапин на голове:
- Событие вставки генерирует объект items, который является объектом DataTransferList, представляющим собой список DataTransferItem объектов.
- У объектов DataTransferItem есть метод
getAsString
, который принимает обратный вызов - Обратный вызов, запрошенный для первого из двух объектов DataTransferItem для операции вставки изображения в Firefox, получил фрагментную строку html.
- Регулярное выражение для получения атрибута
src
<img>
тег в строке элементарный - он просто ищет строку в двойных кавычках.
Так что я бы сказал, что это по крайней мере возможно, но без утверждения, что приведенный выше код является надежным.
Определение того, охватывается ли Firefox способ обработки сообщений данных изображения стандартами или работает в других браузерах, требует дополнительных исследований. Лично я не нашел ни одного стандартного способа поиска информации о данных об изображении при просмотре.