最近遇到了一个细节问题,需要使用execScript,把frame中的数据传递到window中,但是在传参过程中遇到了数据类型变化的问题,导致拿该参数的值做逻辑处理时,报错的bug。
message_talk_person.html页面 以openFrame的方式打开了message_talk_person_bot_frm.html页面。现在要将message_talk_person_bot_frm.html中的的
hasRead
的值 传到message_talk_person.html页面。
写法一:hasReadFunc方法的参数 hasRead
被两个单引号修饰
message_talk_person_bot_frm.html页面
var hasRead = true;
var jsfun = "hasReadFunc('"+hasRead+"');";
api.execScript({
script: jsfun
});
message_talk_person.html页面
function hasReadFunc(obj) {
hasRead = obj;
alert(typeof(obj));
}
打印得知hasRead
是个字符串类型的true
写法二:hasReadFunc方法的参数直接写 hasRead
var hasRead = true;
var jsfun = "hasReadFunc("+hasRead+");";
api.execScript({
script: jsfun
});
message_talk_person.html页面
function hasReadFunc(obj) {
hasRead = obj;
alert(typeof(obj));
}