«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как работает вставка изображений из буфера обмена в обновлении Gmail Chrome 12+?

Как работает вставка изображений из буфера обмена в обновлении Gmail Chrome 12+?

Опубликовано 8 ноября 2024 г.
Просматривать:638

How Does Pasting Images from Clipboard Work in Gmail\'s Chrome 12  Update?

Вставка изображений из буфера обмена в Gmail: как это делается в Chrome 12

Объявление Google о возможности вставлять изображения непосредственно из буфера обмена в Gmail с использованием Chrome 12 вызвал любопытство по поводу основного механизма. Несмотря на использование последней версии Chrome, некоторые пользователи не смогли найти информацию о том, как это улучшение было реализовано в Webkit.

По результатам экспериментов выяснилось, что Chrome принял новую спецификацию API буфера обмена. Эта спецификация позволяет определить обработчик событий «вставки», который может получить доступ к свойству event.clipboardData.items. Вызвав getAsFile() для каждого элемента, можно получить объект Blob. Затем FileReader можно использовать для этого BLOB-объекта, чтобы определить его содержимое.

Ниже приведен фрагмент кода, демонстрирующий, как получить URL-адрес данных для вставленного изображения:

document.onpaste = function (event) {
    var items = (event.clipboardData || event.originalEvent.clipboardData).items;
    for (var index in items) {
        var item = items[index];
        if (item.kind === 'file') {
            var blob = item.getAsFile();
            var reader = new FileReader();
            reader.onload = function (event) {
                console.log(event.target.result); // data URL!
            }; 
            reader.readAsDataURL(blob);
        }
    }
};

Как только URL-адрес данных станет доступен, изображение можно будет отобразить. Альтернативно его можно загрузить с помощью FormData или readAsBinaryString.

Важно отметить, что, хотя JSON.stringify может не работать со списком элементов напрямую, типы MIME можно получить путем итерации по каждому элементу с использованием структуры данных DataTransferItem. .

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3