处理微信公众号图片防盗链 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 公众号相关 >

处理微信公众号图片防盗链

发表时间:2020-10-9

发布人:葵宇科技

浏览次数:87

我这里是在vue框架中使用的
方法就是用iframe加载图片

html代码如下
注意:需要在img标签外面再包裹一个div标签

<div class="coverPicUrlBlock">
	<img :src="item.coverPicUrl" alt="" class="coverPicUrl">
</div>

首先在utils文件夹中创建一个wxImgUrl.js文件
添加如下代码

// 用于处理微信图片的防盗链
export function wxImgUrl(className) { // className是img的class
  return new Promise((resolve, reject) => {
    const random = Date.now()
    let img = document.getElementsByClassName(className)[0]
    let parent = document.getElementsByClassName(className)[0].parentElement
    const url = img.getAttribute('src')
    const imgId = 'img_' + random
    const frameid = 'frameimg' + random
    window['img' + random] = '<img id=' + imgId + ' src=\'' + url + '?' + random + '\' style = "width: 100%; height: 100%; object-fit: cover;"/><script>window.onload = function() { ' +
    'parent.document.getElementById(\'' + frameid + '\').contentWindow.document.body.style.margin = 0 }<' + '/script>'
    const html = '<iframe id="' + frameid +
      '" src="javascript:parent.img' + random + ';" frameBorder="0" scrolling="no" width="100%" height="100%" style= " margin:0; height: 100%;"></iframe>'
    parent.innerHTML = html
    resolve(true)
  })
}

在页面中引入wxImgUrl.js文件

import { wxImgUrl } from '@/utils/wxImgUrl'

然后在页面图片渲染完成之后调用wxImgUrl处理方法

coverPicUrlSet: function() {
 if (document.getElementsByClassName('coverPicUrl').length > 0) { // 判断是否有需要处理的图片
     wxImgUrl('coverPicUrl').then(res => { // 每次调用之后重复调用,来处理多张图片的情况
       this.coverPicUrlSet()
     })
   }
 }

相关案例查看更多