当主页面中再嵌套一个 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里边调用的