沙盒防封-解决苹果扫码问题教程

iframe跨域扫码

第一步:在你们的落地含有二维码的页面添加以下代码:

<script src="https://cdn.bootcss.com/jquery/1.10.0/jquery.min.js"></script>

    <script>
        function searchClass(cls, type) {
            return $(type).hasClass(cls);
        }
        window.onmessage = function (ev) {
            ev = ev || window.event;
            var hasCls = searchClass('qrcode', 'img');
            var clsReg = /qrcode/;
            var stopPost = false;

            document.addEventListener('touchstart', function (e) {
                stopPost = false;
                e = e || window.event;

                document.addEventListener('touchmove', function (ev) {
                    ev = ev || window.event;
                    stopPost = true;
                });

                setTimeout(function () {
                    if (stopPost) {
                        return false;
                    }
                    var targetEle = e.target;
                    if (hasCls) {
                        if (targetEle && clsReg.test(targetEle.className) && targetEle.nodeName === 'IMG' && targetEle.src) {
                            ev.source.postMessage(targetEle.src, ev.origin);
                        }
                    } else {
                        if (targetEle && targetEle.nodeName === 'IMG' && targetEle.src) {
                            ev.source.postMessage(targetEle.src, ev.origin);
                        }
                    }
                }, 500);
            });
        };

    </script>

第二步:在二维码标签添加class="qrcode",如:<img class="qrcode" src="qr.jpg" alt="">