微信公众号iframe嵌套页面js不执行

当主页面中再嵌套一个 iframe 页面时,并非嵌套的页面 js 不执行,而是 wx.config, wx.ready 这些在iframe页面中不执行。

可以试着把 wx.config, wx.ready 放在主页面中,然后对于 iframe 的切换放在 wx.ready 中,在子页面中调用微信 jsapi 可以用 parant.wx.startRecord() 等。

index.html   

// 获取公众号网页签名信息
        function getWxData() {
            var link = location.href;
            $.ajax({
                 url: url + link,//后台给你提供的接口
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                success: function (datad) {
                    wx.config({
                        debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来
                        appId: datad.AppId, // 必填,公众号的唯一标识
                        timestamp: datad.timestamp, // 必填,生成签名的时间戳
                        nonceStr: datad.nonceStr, // 必填,生成签名的随机串
                        signature: datad.signature,// 必填,签名,见附录1
                        jsApiList: [
                            "getLocation",
                            "startRecord",
                            "stopRecord",
                            "playVoice",
                            "pauseVoice",
                            "stopVoice",
                            "uploadVoice",
                            "onVoicePlayEnd",
                            "onVoiceRecordEnd",
                            "chooseImage",
                            "getLocalImgData",
                            "downloadVoice",
                            "previewImage"
                        ] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
                    });
                    wx.ready(function () {
                        $('#iframeContainer').attr("src", "./my-submit.html");
                        $(".tab-container p").click(function () {
                            let metaTitle = ["群众举报", "我的记录"];
                            $(this).siblings().removeClass("active");
                            $(this).addClass("active");
                            var dataUrl = $(this).attr("data-url");
                            $('#iframeContainer').attr("src", dataUrl);
                            document.title = metaTitle[$(this).index()];
                        })
                    });
                },
                error: function (error) {
                    alert(error);
                }
            });
        }

my-submit.html

var wx = parent.wx;
wx.startRecord();

 注意:要手动对第一个iframe进行设置一次src,否则第一个页面不是在wx.ready里边调用的

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值