Перед вами текст на языке TypeScript.
Он представляет собой фрагмент кода, который выполняет следующие действия:
doScreenShot
, которая асинхронно делает снимок экрана с помощью плагина js-web-screen-shot
.doScreenShot
и их значения.В тексте также есть комментарии, которые описывают некоторые особенности использования плагина.
Текст содержит код на языке TypeScript, но не содержит специальных тегов форматирования. wrcImgPosition: в режиме webrtc необходимо ли обрезать изображение, значение имеет тип { x: number; y: number; w: number; h: number }, по умолчанию обрезка не выполняется.
noScroll: можно ли прокручивать снимок контейнера, значение имеет тип boolean, по умолчанию прокрутка включена.
maskColor: цвет маски, значение имеет тип { r: number; g: number; b: number; a: number }, по умолчанию: { r: 0; g: 0; b: 0; a: 0.6 }.
toolPosition: положение панели инструментов, значение имеет строковый тип, по умолчанию панель инструментов центрирована, доступны три опции:
writeBase64: следует ли записывать содержимое снимка в буфер обмена, значение имеет логический тип, по умолчанию включено.
wrcWindowMode: следует ли использовать режим окна для создания снимков, значение имеет логический тип, по умолчанию отключено (используется текущий тег страницы). Если содержимое тега страницы имеет полосы прокрутки или нижний пробел, можно рассмотреть использование этого режима.
hiddenScrollBar: скрывает ли полосы прокрутки. Используется при создании снимков в режиме WebRTC на Chrome версии 112 на некоторых системах. Если появляются полосы прокрутки, можно попробовать исправить это с помощью этого параметра. Значение имеет объектный тип и включает четыре свойства:
Использование текущего тега страницы для создания снимков обеспечивает наилучший пользовательский опыт. Однако из-за ошибки в Chrome версии 112 содержимое может быть сжато, что приводит к неполному захвату изображения. В этом случае приходится использовать другие решения. Варианты wrcWindowMode и hiddenScrollBar могут помочь решить эту проблему.
- Вариант wrcWindowMode более совершенен, но при авторизации пользователя могут появляться дополнительные опции приложений, что ухудшает пользовательский опыт.
- Вариант hiddenScrollBar также использует текущий тег страницы, но может привести к сжатию содержимого и появлению нижнего пробела.
Оба варианта имеют свои преимущества и недостатки. Лучше всего надеяться, что Chrome исправит эту ошибку в будущих обновлениях.
В типах, указанных выше, знак вопроса (?) обозначает необязательный тип в TypeScript. Это означает, что ключ является необязательным и его можно передать, если это необходимо.
Если изображение загружается из другого домена, необходимо разрешить междоменные запросы на сервере изображений. То же самое относится к настройке loadCrossImg, которая должна быть установлена в true, когда изображение загружается из другого домена.
Плагин отслеживает три горячие клавиши:
Плагин предоставляет некоторые внутренние переменные для удобства модификации в соответствии с требованиями вызывающей стороны.
Эта функция используется для получения DOM области создания снимка. Возвращаемое значение имеет тип HTMLCanvasElement.
Пример кода:
import ScreenShot from "js-web-screen-shot";
const screenShotHandler = new ScreenShot();
const canvasDom = screenShotHandler.getCanvasController();
Обратите внимание, что если область создания снимка ещё не загружена полностью, полученное содержимое может быть нулевым.
Эта функция используется для уничтожения области создания снимка без возвращаемого значения.
Пример кода:
import ScreenShot from "js-web-shot";
const screenshotHandler = new Screenshot();
screenshotHandler.destroyComponents()
Эта функция записывает содержимое области создания снимка в буфер обмена без возвращаемого значения.
Эту функцию можно комбинировать с параметром cropBoxInfo для реализации автоматического создания снимков в заданной области. Содержимое по умолчанию записывается в буфер обмена. Если вы хотите получить base64-контент созданного снимка, вы можете использовать параметр completeCallback или напрямую получить его из sessionStorage.
Пример кода:
const plugin = new screenShotPlugin(
{
clickCutFullScreen:true,
wrcWindowMode: true,
cropBoxInfo:{x:350, y:20, w:300, h:300},
completeCallback: ({base64, cutInfo}) => {
console.log(base64, cutInfo);
},
triggerCallback:() => {
// 截图组件加载完毕调用此方法来完成框选区域的截图
plugin.completeScreenshot()
}
});
Если вам нужно изменить значки на панели инструментов, вы можете сделать это, переопределив классы CSS элементов. Все классы значков панели инструментов перечислены ниже:
Например, чтобы изменить значок square, просто добавьте следующий код в свой проект:
.square {
background-image: url("ваш путь к значку") !important;
&:hover {
background-image: url("ваш путь к значку") !important;
}
&:active {
background-image: url("ваш путь к значку") !important;
}
}
На этом мы завершили описание всех методов использования плагина. Существует версия этого плагина для Vue3.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )