Closed wuhanfeiyou closed 7 years ago
@wuhanfeiyou 我看出现问题的mip-img
渲染了两次,请问你有对部分mip-img
做特殊处理吗(用js抓一次具体是什么操作)?如果有特殊处理,请提供下处理的代码
我没做特殊处理。就是用JS抓一次渲染后的mip-img。就好比: 事例源码:
<p><mip-img src="http://pic.qqtn.com/up/2017-3/201703310909386985456.png" class="mip-element mip-layout-container mip-img-loaded">
<img class="mip-fill-content mip-replaced-content" src="http://pic.qqtn.com/up/2017-3/201703310909386985456.png"></p>
上面是渲染成功的mip-img的代码。 然后用JS抓取代码如下:
var imgHtml = $("p").html();
这样的话,他会把你渲染后的mip-img给完整抓出来。然后抓出来的代码如下:
<mip-img src="http://pic.qqtn.com/up/2017-3/201703310909386985456.png" class="mip-element mip-layout-container mip-img-loaded">
<img class="mip-fill-content mip-replaced-content" src="http://pic.qqtn.com/up/2017-3/201703310909386985456.png">
</mip-img>
。然后如果再次使用imgHtml ,这个变量。就会出现mip-img里面有2张图片的问题。
线下沟通结论:使用方式不当。由于站长策略原因,页面 mip-img 渲染完成之后,站长通过jquery html()
获取渲染后的 mip-img html,并删除了页面中的 mip-img,最后将获取的 html 包裹一层其他 html 后插入页面。这样做的问题在于,获取的mip-img里面包含img,重新插入后 mip-img 会按照组件生命周期执行并渲染出一个另一个 img,从而出现两个img的情况。
建议按照规范的组件方式书写,插入纯净的组件(非渲染后的)。
<mip-img>
的渲染方式: 就是把这个代码:最终渲染成了这样的代码:
可是这样。当图片被渲染成功时候。我在用JS抓一次渲染后的mip-img里面的内容。。就会出现2张图片: http://m.qqtn.com/mipc/176401.html (这是地址)
看是不是可以解决一下这个问题。有时候我需要抓取一整块内容。中间就会包含已经渲染成功的mip-img