在设置antd-Mobile重的ImageViewer的前提下设置图片不可长按保存功能

react-mobile-image-viewer::rocket:手机图像查看器,就像微信图像预览一样 react-mobile-image-viewer 体验 git clone https://github.com/skyFi/react-mobile-image-viewer.git cd react-mobile-image-viewer yarn && npm start 本地手机预览需要在同一个局域网下面访问<本地电脑ip>:3000 在线预览: 安装 npm install react-mobile-image-viewer --save 使用 做函数使用(推荐) 基本规则: viewer(<配置信息([如下](#配置))>: Object) => ({ destroy: Function }); // import import viewer from 'react-mobile-image-viewer'; import 'react-mobile-image-viewer 立即下载

由于用户需要图片资料的保密性,让我在移动端禁用小程序自带的长按保存功能。

一开始想到的方法是禁用全局的img,pointer-events: none !important;由于其他网上的禁用方法不可行,只能从这个方向入手。

由于在移动端使用了ImageViewer组建,所以碰到个情况,如果我们全局禁用了img,这个组建中的img就不能进行放大等功能了,于是我们对这个antd组件的属性进行绕开的操作,避免直接操作img,而是找到img的父节点,然后通过img的父节点的点击来进行对img进行操作。



  const showImg = (ev) => {
     // 原来的点击图片
     // ImageViewer.show({
     // image: ev.target.currentSrc,
     // })
     //在父节点找到下面的img
    let image = ev.target.querySelectorAll('img')[0]
    ImageViewer.show({
      image: image.currentSrc,
    })
      }

  useEffect(() => {
    let imgOjbs = []
    let imgOjbsParents = []
    if (data.doc_type === 'doc') {
      imgOjbs = ref.current.querySelectorAll('img')
      imgOjbsParents = ref.current.querySelectorAll('img').offsetParent
      console.log('imgOjbsParents', imgOjbs)
      imgOjbs.forEach((img) => {

        img.parentNode.addEventListener('click', showImg)
        // 没有禁用之前直接对图片进行点击
        // img.addEventListener('click', showImg)
        //网上的第二种禁止长按保存的例子(在我这失败)
        // img.addEventListener('contextmenu', (e) => {
        //   e.preventDefault()
        // })
      })
    }
    return () => {
      if (data.doc_type === 'doc') {
        imgOjbs.forEach((img) => {
          img.removeEventListener('click', showImg)
          // img.removeEventListener('contextmenu', (e) => {
          //   e.preventDefault()
          // })
        })
      }
    }
  }, [data])
return <div>

     <div
          ref={ref}
          style={{ padding: '0.2rem' }}
          dangerouslySetInnerHTML={{ __html: data.content }}
        ></div>
     </div>

【Word提效 No.010】使用AI一键复制格式刷应用格式 本文介绍利用AI工具WorkBuddy实现Word文档格式批量复制的自动化解决方案。通过简单指令即可将指定段落的格式一键应用到多个目标段落,解决传统格式刷操作繁琐、易出错的问题。方案包含三步操作:准备文档、输入指令模板、验收效果,并提供多种场景的现成指令示例。该工具支持字体、段落等格式属性的批量复制,且不会覆盖原文件,适用于论文、手册等文档的格式统一需求。 阅读详情

相关推荐

【开关】刀开关矩阵(Pole Switched Matrix)的结构讨论

矩阵主要有交叉点矩阵和树形矩阵两种矩阵结构。 交叉点矩阵是由SPST继电器排列成简单的网格形式的阵列组成;树形矩阵是由树形的多路复用模块组成,为需要高频RF带宽的应用提供解决方案。在搭建这些矩阵的同时,也限制了可提供的连接性。这也是为什么有的矩阵是简单的交叉点矩阵,而有的矩阵的交叉点中嵌入隔离继电器用来提供中间带宽的矩阵。 但是,Pickering Interfaces提供的另外一种矩阵类型其...

Tina的博客 4405

react,antd-mobile图片组件并带有预览功能

import React, { Component } from 'react'; import { Image, Space, ImageViewer } from 'antd-mobile'; import { Skeleton } from 'antd'; const fileDocDownloadPath = 'api/docrepo/download?attachmentId='; class Index extends Component { constructor...

weixin_57229715的博客 2211

电源完整性仿真流程梳理

可根据仿真流程导图,一步一步的去设置完成仿真。仿真的关键,在于对电路回路的理解以及所放置的电压源与电流的合理性,对于去耦电容的选择,则需要根据谐振频率计算,从而选取有效滤波的容值。

csy17729158342的博客 3442

uniapp的H5实现图片长按保存

使用uniapp的api实现图片预览,可以缩放,关闭等操作imageUrl是图片地址,如https://www.111.com/abc/image.pngurls是字符串数组,用来预览图片因为app可以使用对应的图片下载保存,这里就不多说了,主要讲的是在H5实现图片预览保存功能。

m0_57108418的博客 5211

【附源码】Node.js毕业设计高校院级校友信息管理系统(Express)

首先,该系统可以提高高校对校友信息管理的效率和准确性。通过系统提供的查询功能,高校可以方便地获取校友的最新联系方式和动态,及时了解校友的发展情况,为校友提供更好的服务和支持。总之,开发高校院级校友信息管理系统将为高校提供一个高效、便捷的工具,有助于提升校友管理水平和服务质量,促进高校与校友之间的良好互动关系。通过使用前端技术HTML、CSS、JavaScript和Vue框架,结合后端技术Node.js和Express框架,以及MySQL数据库,可以实现对校友信息的快速录入、查询、修改和删除等操作。

佳愉毕设源码 892

AI 生成 CAN 通信测试用例实战

本文分享了AI辅助汽车电子测试用例编写的实战经验。通过某车企CAN网络测试项目案例,对比传统方式(需27天)与AI辅助方式(仅5天)的效率差异,展示81%的效率提升。文章详细介绍了从DBC文件提取信号信息的方法,包括DBC文件结构解析、信号定义说明,并提供了完整的Python解析脚本代码,可将信号信息导出为JSON或Excel格式,为后续AI批量生成测试用例奠定基础。

小明的博客 691

长按UIWebView上的图片保存到相册

不知道各位对于这个需求要如何解决? 可能有些人会想到js与原生交互,js监听图片点击事件,然后将图片的url传递给原生App端,然后原生App将图片保存到相册,这样子麻烦吗?超麻烦。(1)、js监听图片长按事件;(2)、js将图片url传递给原生;(3)、原生通过图片的url生成UIImage;(4)、保存UIImage到系统相册,巨麻烦啊,大哥,我很懒的好不好 那么问题跑出来了,怎么办

巴拉巴拉小魔仙 534

Python Trimesh库实战:5分钟搞定STL文件解析与3D模型可视化

本文介绍了如何使用Python的Trimesh库快速解析STL文件并进行3D模型可视化。通过简洁的代码示例,演示了从环境搭建、模型加载、几何数据提取到基础变换和批量处理的核心流程,帮助开发者和工程师在5分钟内高效完成3D数据处理与可视化任务。

weixin_32005771的博客 159

html5移动端实现禁止长按图片保存:

html5移动端实现禁止长按图片保存:

SunPeng的博客 2097

VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的案例应用(启动SolidWorks代码/直接驱动模型代码/路径下模型驱动代码/创建两个文

VB.net:VB.net编程语言学习之基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的案例应用(启动SolidWorks代码/直接驱动模型代码/路径下模型驱动代码/创建两个文件夹对话框代码/重新生成三维图代码/导出工程图代码)之详细攻略 目录 基于VS软件利用VB.net语言实现对SolidWorks进行二次开发的案例应用 1、调用SW的模型,并进行参数修改 1.1、VB按钮之SW的三维零件之间切换思想 1.2、调用SW 2、基础案例经验 2.1、设计SW的拉

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 3035

YOLOv11改进 ,YOLOv11改进主干网络为MobileNetV3,助力涨点

MobileNetV3通过结合硬件感知网络架构搜索(NAS)和NetAdapt算法,通过新颖的架构改进进一步提升了性能。本文开始探讨了自动化搜索算法与网络设计如何协同工作,以利用互补方法来提升整体技术水平。通过这一过程,创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对高资源和低资源使用场景。这些模型随后被适配并应用于目标检测和语义分割任务。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1933

禁止移动端h5长按下载图片(笔记)

ios好像有的默认就不支持 长按下载图片 1.

业余前端的职业经历 1027

文末含资料链接和视频讲解!YOLOv8集成CoordAtt注意力机制详细教程

本文详细介绍了如何在YOLOv8目标检测框架中集成CoordAtt注意力机制。首先解析了CoordAtt的工作原理,它通过分解式池化将位置信息嵌入到通道注意力中,相比传统注意力机制具有更好的空间信息保持能力。然后提供了PyTorch实现代码解析,包括自适应平均池化、Hard-Swish激活函数等关键实现细节。最后概述了YOLOv8架构,为后续集成CoordAtt提供基础。该教程适合具备深度学习基础的开发者,将理论与实践结合,帮助读者掌握这一目标检测优化技术。

FJN110的博客 266

【AI解读源码系列】ant design mobile——Image图片

本文解读了antd-mobile的Image组件实现流程,重点分析了其懒加载机制。组件通过参数合并、状态管理、事件处理等步骤实现图片加载功能,其中懒加载由LazyDetector通过IntersectionObserver实现。当图片进入视口时触发加载,优化了页面性能。文章详细解析了组件初始化、状态判断、图片显示逻辑等关键环节,并展示了如何通过useInViewport钩子实现懒加载检测。这种AI辅助解读源码的方式能有效提升前端开发效率。

量子前端的博客 1110

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ios antd-mobile弹窗始终位于wxImageViewer上方bug

移动端用了antd-mobile的modal组件 modal里面用了wxImageViewer预览图片 但是在ios上,弹窗始终在预览的图片上层,安卓则是正常的 检查css,modal自带zindex为999;wxImageViewer设置的10000; 原来是因为antd给modal设置了transform: translateZ(1px); 而在ios上,translateZ的优先级高于zindex ...

kaluliluary的博客 631

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

使用saltui实现图片预览查看

项目是基于dingyou-dingtalk-mobile脚手架的一个微应用,这个脚手架使用的UI是antd-mobile,它提供了一个图片上传的组件,但是未提供图片预览的组件,在网上找了不少如何在react项目中实现图片预览查看的功能,大多数都是基于react-native的,比如https://segmentfault.com/a/1190000010090233里面所说的react-wx-im...

weixin_30299539的博客 192

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ImageView的几种对图片的缩放处理 解决imageview放大图片后失真问题解决办法

我的解决办法: 1 首先设置android:layout_width=”wrap_content”和android:layout_height=”wrap_content”,否则你按比例缩放后的图片放在这也有可能会虚的。 2.配合android:scaleType="fitXY" 使用 3.为图片设置maxWidth或maxHeight ImageView的几种对图片的缩放

程序猿成长之路 1万+

第17讲- UI常用组件之ImageView图片浏览

第17讲UI常用组件basic View之ImageView图片浏览 二、图片浏览ImageView ImageView就是一个用来显示图片的视图;   ImageView常见属性 常见属性 对应方法 说明 android:adjustViewBounds setAdjustViewBounds(boolean)

安源 484

[RN]使用react-native-image-zoom-viewer缩放图片显示器长按保存图片到相册功能失效

原因: 插件源码使用的CameraRoll已从RN移除,需要另外添加@react-native-community/cameraroll 使用ImageViewer提供的onSave回调实现保存: import path from 'react-native-path'; import RNFetchBlob from 'rn-fetch-blob'; import CameraRoll from "@react-native-community/cameraroll"; import ImageView

weixin_39388536的博客 2328

移动端禁止图片/文字长按默认行为

移动端禁止图片/文字长按默认事件

折月的博客 1318

移动端图片标签的长按保存怎么移除

经过了解后得出:对img标签使用 pointer-events: none;属性即可实现这个效果,但是使用这个效果的同时会移除掉img的点击事件,让图片无法被选中。Web开发中,在移动设备的浏览器上存在一些差异,最近遇到一个问题:网页中放置了一些img标签用于展示图片内容,但是需求方又希望这些图片仅供查看,不可被下图这种方式下载下来。最后在需要用到img标签的地方将img替换成这个组件就行了!

前端小伍的博客 518

uview中 u-album相册显示样式支持自定义

有特殊的显示要求的时候,使用插槽进行显示,position值改为‘absolute’即可在页面上显示ui需要的样式,从而实现预览功能。缺点:u-album相册的展示效果却有点蠢,很难构建自己需要的样式,比如:头像使用、产品详情图片等。position(非比传): 定位值有‘absolute’、‘relative’urls(比传): 图片的链接,可以是 数组,也可以是以“,”隔开的字符串;优点:uview中u-album相册的预览功能还是可以的。

qq_38909255的博客 1361

关于u-view u-album组件相册模式下单张图片不显示问题。

找到u-album的组件代码,修改如下,即可解决。

深山苦练二十年 600

uv-ui 相册组件 uv-album 深度解析:从版本演进到源码级配置实战

本篇技术指南围绕 uv-ui 生态框架中的 `uv-album` 相册组件展开,结合其 [changelog 版本演进记录](https://link.gitcode.com/i/7af50526b5e54f64052f8fa72b08ad34)、[组件完整源码](https://link.gitcode.com/i/165082d1168dd980a0b39fbbbe0b3cb5) 与 [官方演

gitblog_00516的博客 362

antd mobile 作者教你写 React 受控组件和非受控组件

“关注作者:https://www.zhihu.com/column/c_1455925261150105600”曾经,我每次面试时几乎都会问一个问题:antd 中的 Input 组件是受控组件还是非受控组件?有些人会毫不犹豫的回答:是受控组件,因为有 value 和 onChange,而另外也有一些人会比较犹豫,因为的确似乎说 Input 是受控组件或非受控组件都说得过...

萧然自我的博客 869

H5怎么禁用长按复制的功能?

H5怎么禁用长按复制的功能?

github_39427902的博客 1776
上一篇: antd中上传组件获取到的file传到后端为uid而不是(二进制)的问题
下一篇: React中关于antd的RangePicker自定义清空
KisJ
博客等级 码龄6年 827粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值