39 lines
1.1 KiB
JavaScript
39 lines
1.1 KiB
JavaScript
/**
|
|
* 微信小程序图片长按识别二维码 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')
|
|
}
|
|
})
|
|
}
|
|
}
|
|
}
|
|
}
|