“此图片来自微信公众平台 未经允许不可引用“ 解决办法

简介: “此图片来自微信公众平台 未经允许不可引用“ 解决办法

image.png

在html里加


<meta name="referrer" content="no-referrer" />

是个办法 但是我们业务需要使用referer 所以我这里不能加。


<div class="iframeLogo" v-if="logoFileSrc && logoFileSrc.includes('mmbiz_')" v-html="ImgFun(logoFileSrc, 'logo')"></div>
<img class="info_logo" v-else :src="logoFileSrc">
  ImgFun (url, type) {
      let styles
      if (type === 'logo') {
        styles = 'width:58px;height:58px;position:absolute;top:0;left:0;'
      } else if (type === 'bg') {
        styles = 'width:300px;height:200px;position:absolute;top:0;left:0'
      }
      var randomId = 'img' + url
      window[`img${url}`] = '<img id="img" style=\'' + styles + '\' src=\'' + url + '?' + 'img' + '\'/><script>window.onload = function() { parent.document.getElementById(\'' + randomId + '\').height = 100+\'%\'; } <' + '/script>'
      var iframeStr = `<iframe id=${randomId} src="javascript:parent['img${url}']" frameBorder="0" scrolling="no" width="100%" ></iframe>`
      return iframeStr
    },

背景图:

<div class="iframeBG" v-if="bgFileSrc && bgFileSrc.includes('mmbiz_')" v-html="ImgFun(bgFileSrc, 'bg')"></div>
  .iframeBG {
    width: 285px;
    height: 198px;
    position: absolute;
    border-radius: 5px;
    overflow: hidden;
  }

注意: 当一个页面里出现两张相同路径的图片时,会出现样式错乱问题,如下图。  

image.pngimage.png

但是两张不同的图片就不会有问题


image.pngimage.png


分析iframe的代码得知,问题出在这行代码上window[img${url}] randomId

iframe嵌入的时候根据src="javascript:parent['img${url}']" randomId来决定嵌入的元素以及样式。


当两张图片一样时, 图片的url也是一模一样的。 虽然调用ImgFun方法的时候,进type的判断了。 但是由于id是相同的,在iframe进行渲染的时候,后面的样式代码会把前面的进行覆盖,所以会出现上面的问题。


解决办法: 既然是 “不唯一” 造成的问题,可以把id和img加参数 作为唯一标识。

 ImgFun (url, type) {
      let styles
      let img
      if (type === 'logo') {
        img = 'imgLogo'
        styles = 'width:58px;height:58px;position:absolute;top:0;left:0;'
      } else if (type === 'bg') {
        img = 'imgBg'
        styles = 'width:300px;height:200px;position:absolute;top:0;left:0;'
      }
      var randomId = img + url
      window[`${img}${url}`] = '<img id="img" style=\'' + styles + '\' src=\'' + url + '?' + 'img' + '\'/><script>window.onload = function() { parent.document.getElementById(\'' + randomId + '\').height = 100+\'%\'; } <' + '/script>'
      var iframeStr = `<iframe id=${randomId} src="javascript:parent['${img}${url}']" frameBorder="0" scrolling="no" width="100%" height="100%"></iframe>`
      return iframeStr
    },

image.png

可以看出 id唯一。 问题解决~


image.png

相关文章
|
6月前
|
机器学习/深度学习 小程序 前端开发
微信小程序——实现对话模式(调用大模型图片生成)
微信小程序——实现对话模式(调用大模型图片生成)
398 3
|
6月前
【微信公众平台对接】有关【上传图文消息内的图片获取URL】调用示例
【微信公众平台对接】有关【上传图文消息内的图片获取URL】调用示例
168 0
|
6月前
|
小程序
内网环境中ruoyi若依实现微信小程序授权登录解决办法
内网环境中ruoyi若依实现微信小程序授权登录解决办法
409 0
|
4月前
|
小程序 开发者
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
【微信小程序-原生开发】实用教程05-首页(含自定义调试模式、插入图片、图文排版、底部留白、添加本地图片)
59 0
|
1月前
|
小程序 JavaScript API
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
这篇文章介绍了如何在uni-app和微信小程序中实现将图片保存到用户手机相册的功能。
644 0
微信小程序开发之:保存图片到手机,使用uni-app 开发小程序;还有微信原生保存图片到手机
|
1月前
|
算法 小程序 Java
java制作海报三:获取微信二维码详情,并改变大小,合成到海报(另一张图片)上
这篇文章介绍了如何使用Java获取微信小程序的二维码,并将其调整大小后合成到海报(另一张图片)上。
42 0
|
3月前
|
小程序 前端开发
|
4月前
|
小程序 前端开发
【非常全】微信小程序下载图片到相册,微信小程序自动获取分享图片到相册
【非常全】微信小程序下载图片到相册,微信小程序自动获取分享图片到相册
279 3
|
4月前
|
前端开发 小程序
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
【微信小程序-原生开发】实用教程20 - 生成海报(实战范例为生成活动海报,内含生成指定页面的小程序二维码,保存图片到手机,canvas 系列教程)
416 0
|
4月前
|
小程序 JavaScript 前端开发
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
【微信小程序-原生开发】实用教程06-轮播图、分类页签 tab 、成员列表(含Tdesign升级,切换调试基础库,设置全局样式,配置组件按需注入,添加图片素材,wx:for,生命周期 onLoad)
156 0