如题 最近在开发中 发现 在苹果手机中打开 iframe链接的网页时 长按二维码 不能调出扫一扫的按钮 有没有谁遇到这个问题 安卓中可以正常调用!
前段时间我参与的项目中也遇到这个问题,原有的框架使用的也是嵌套iframe的结构,导致iframe中的二维码在IOS下无法识别,最后我的解决方法如下。
1、当iframe中的二维码被按下touchstart
的时候,将二维码地址推送至父页面
2、父页面接收到二维码识别的请求,则创建一个不可见的img
元素,src
为刚刚传输过来的二维码地址,并且二维码置顶铺满整个屏幕
3、在touchend
与touchcancel
时,通知父窗体删除二维码。
目前主要采用postMessage
进行父子页面之间的消息传递,postMessage
可以在不同域之间使用,所以没有跨域问题。
若是同域、并且需要对低版本浏览器IE < 8
进行兼容,子页面可以使用parent
、父页面使用frames[id||name]
进行通信
注:在
Firefox
中frames
使用iframe
的name
属性