• 禁止微信长按保存图片


          事情的经过是这样的,有一天我去公司其他部门咨询链接底层服务的事情。正好当时他们部门的前端小伙伴遇到一个bug。这个bug是这样的,在微信里内嵌的H5页面中有一个图片。然而呢!图片绑定了一个点击事件。大家都知道,在手上访问H5页面的时候,长按图片就会把图片保存起来。为了能够让用户体验更好一些,我们需要长按的时候也不保存图片。还能触发点击事件。当时他们咨询我这Bug怎么解决,我呢回去就围绕事件这块做了测试,也行当时没用心,没思考。结果呢,肯定是没有解决掉。

         今天在哪躺着回想之前的事情,想起来这个bug。突然间脑子闪现出解决方案了。

         一、如何想要图片不被保存

              图片上边加一层div类似于遮罩层,这样图片就不会被点击,右击也不会出现如图的图片另存为。

              

         二、对这层添加点击事件处理相关逻辑

         三、代码如下

    预览路径
    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="UTF-8">
            <title>禁止微信长按保存图片</title>
            <style type="text/css">
                .imag{
                    position: relative;
                    width: 80%;
                    margin: 0 auto;
                    margin-top: 20px;
                }
                .imshar{
                    position: absolute;
                    z-index: 100;
                    left: 0;
                    right: 0;
                    top: 0;
                    bottom: 0;
                    opacity: 0;
                }
                .imag img{
                    display: block;
                    width: 100%;
                }
            </style>
        </head>
        <body>
            <div class="imag">
                <div class="imshar" onclick="fn()"></div>
                <img src="http://images.cnblogs.com/cnblogs_com/xiaoxiaokun/1007663/o_xiaoxiaokun.png"/>
            </div>
            <script type="text/javascript">
                function fn(){
                    alert("处理你想要处理的事情!不可以保存图片")
                }
            </script>
        </body>
    </html>

       总结:

            其实做技术的时候我们要想一下,其他方案,不能纠结于事件处理,也许能用css与html就可以处理掉呢!只有做出来给用户看不出问题就行啦!

      加油吧!小伙伴们。

  • 相关阅读:
    mysql之drop、truncate和delete的区别
    mysql之表结构,表空间,段,区,页,MVCC(待整理)
    mysql之子查询、视图、事务及pymysql等
    mysql之单表查询、多表查询
    解决跨域问题!
    项目--2
    项目--1
    后端接口书写
    VUE-组件
    VUE基本写法
  • 原文地址:https://www.cnblogs.com/xiaoxiaokun/p/7181952.html
Copyright © 2020-2023  润新知