解决安卓网页在微信浏览器中点击图片会自动放大

使用的是微信Android客户端,使用img标签的src属性将图片设置好了以后,在微信中调试,点击图片竟然放大,自己 
没写放大图片的方法,也没有调用wx.previewImage()方法,最后查找,原来是微信Android客户端已经在底层支持了img标签自动放大的功能,说是bug还是改进?因为传统的浏览器是不带图片放大效果的,需要自己写方法,好了,明白了问题所在,解决就好了: 
传统方式: 

这个方式可能会把所有的默认的属性都屏蔽了,典型的就是a标签不能跳转 
$(document).on(‘click’, ‘img’, e => { 
e.preventDefault(); 
}) 

js阻止事件

<img src="a.png" onclick="return false" />

css方式: 
img{ 
pointer-events: none; 

这个会让img标签的点击事件失效,如果想要点击图片就要给上面再写一层 
Vue方式: 
v-on:click.prevent或者@click.prevent 
既能保证img标签的click,也能保证在微信中不自动放大,完美解决

 

 

另外一种方法

 

复制代码
// 递归搜索当前元素所有父级,看是否包含有a标签且有href值
const searchIsHavaTagA = function (currentEle) {
    // 如果一直往上层找,到body还没找到就说明没有了
    if (currentEle.nodeName === 'BODY') {
        return false;
    }
    let parent = currentEle.parentElement;
    if (parent.nodeName === 'A' && parent.getAttribute('href')) {
        return true;
    } else {
        return searchIsHavaTagA(parent);
    }
}
$(document).on('click', 'img', function (e) {
    try {
        // 父级里有a标签且href不为空的,不处理
        if (!searchIsHavaTagA(e.target)) {
            e.preventDefault();
        }
    } catch (error) {
        console.log('阻止图片默认事件失败');
    }
                        
})
复制代码

 

posted @   一个人的孤独自白  阅读(712)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2017-06-22 Linux下修改Mysql的用户(root)的密码
点击右上角即可分享
微信分享提示