微信的坑实在太多了…

这次遇到的是有关微信图文消息的:微信图文消息接口接收一段html string,然后生成图文消息时会生成一个包裹这段html的页面。

不过如果你简单的以为这就是普通的html你就错了…

这个html是被阉割版的html,微信会把其中一些东西escape掉。这次我所遇到的有这些:

  1. script标签,直接被干掉,一点都不剩(不过这点可以理解
  2. img标签、background: url()属性这种指向某个资源标签或者css属性,如果这个资源没有通过调用微信接口上传的话,对应的这个标签或者属性会被直接删除掉。
  3. position、transform等定位/位移的css属性,直接被删除掉。(估计是怕用户通过定位把微信自己的一些信息[广告]覆盖掉

被恶心了一下之后,对应的对策如下:

  1. 没办法,别写script
  2. 老老实实用微信接口上传资源,然后引用返回的资源url
  3. 用float + margin凑合下

微信”开放“平台大法好!