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

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

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

相关文章
|
3月前
|
小程序
内网环境中ruoyi若依实现微信小程序授权登录解决办法
内网环境中ruoyi若依实现微信小程序授权登录解决办法
165 0
微信分享报错 wxlog:Error:fail to load Keychain status:-25300 解决办法
微信分享报错 wxlog:Error:fail to load Keychain status:-25300 解决办法
1694 0
|
3月前
|
测试技术
Appium启动微信失败的解决办法
Appium启动微信失败的解决办法
52 1
|
8月前
|
小程序 索引
微信小程序底部导航栏最多只能显示五个,解决办法
可以使用 scroll-view 实现类似 tabBar 的效果
243 0
|
Android开发 iOS开发
Android - 安卓设备在微信中播放视频结束后出现广告的解决办法
Android - 安卓设备在微信中播放视频结束后出现广告的解决办法
167 0
|
小程序
微信小程序tabbar不显示,小程序tabBar不显示的解决办法
微信小程序tabbar不显示,小程序tabBar不显示的解决办法
724 0
|
编解码 Windows
Windows 微信兼容性问题:微信截图放大解决办法。
Windows 微信兼容性问题:微信截图放大解决办法。
893 0
Windows 微信兼容性问题:微信截图放大解决办法。
|
Go
一元云购CMS微信分享打不开解决办法
这代码写的,唉,好吧,能用就凑合用吧,无法是一个进站规则问题。
949 0
|
7天前
|
小程序 前端开发 API
微信小程序全栈开发中的异常处理与日志记录
【4月更文挑战第12天】本文探讨了微信小程序全栈开发中的异常处理和日志记录,强调其对确保应用稳定性和用户体验的重要性。异常处理涵盖前端(网络、页面跳转、用户输入、逻辑异常)和后端(数据库、API、业务逻辑)方面;日志记录则关注关键操作和异常情况的追踪。实践中,前端可利用try-catch处理异常,后端借助日志框架记录异常,同时采用集中式日志管理工具提升分析效率。开发者应注意安全性、性能和团队协作,以优化异常处理与日志记录流程。

热门文章

最新文章