/** * 微信小程序图片长按识别二维码 mixin * 自动为页面中的所有 image 组件添加 show-menu-by-longpress 属性 */ export default { data() { return { // 需要排除的图片类名(不需要长按识别的) excludeImageClass: ['no-longpress', 'swiper-image', 'banner-image'] } }, mounted() { // #ifdef MP-WEIXIN this.$nextTick(() => { this.addLongpressToImages() }) // #endif }, methods: { /** * 为页面中的所有 image 添加长按识别支持 */ addLongpressToImages() { // 获取当前页面所有 image 组件 const images = document.querySelectorAll && document.querySelectorAll('image') if (images) { images.forEach(img => { // 检查是否需要排除 const className = img.className || '' const shouldExclude = this.excludeImageClass.some(cls => className.includes(cls)) if (!shouldExclude) { img.setAttribute('show-menu-by-longpress', 'true') } }) } } } }