apicloud使用api.execScript在frame与win中传值

本文介绍了如何在Apicloud中使用api.execScript方法在frame和win之间传递值,实现点击底部菜单导航时修改header标题和活动菜单样式。通过在frame中调用api.execScript并将值传回win,然后在win中操作DOM元素来完成标题的更新和类名的添加。遇到问题时,作者建议尝试重新编译以解决莫名其妙的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

需求:

header写在win中,点击win中的底部菜单导航打开frame,打开不同frame修改header的标题,以及给当前的活动菜单添加class


思路:

利用api.execScript把需要的值在frame中传回win,在win中操作标题(  $api.html(el, title))和改变class($api.addCls(el, 'aui-active'))


代码:

1、Frame中:(注意放在apiready中)

var jsfun = 'setHeaderInfo("fav","收藏");';
api.execScript({
name: 'header', //winName
script: jsfun

});

2、Win中:(即包含header的页面,定义frame中的isfun)

function setHeaderInfo(name, title) {
        var header = $api.byId('header'),
            cur_bot_nav = $api.dom('.b-nav-' + name),//需要添加active的nav

pre_nav = $api.dom('.b-nav-' + cur_frame);//上一个活动的nav
            cur_frame = name;//赋值,下次切换时可以找到需要移除active的nav
        $api.html(header, title); //设置头部标题
        $api.removeCls(pre_nav, 'aui-active');//移除active
        $api.addCls(cur_bot_nav, 'aui-active'); //底部添加当前活动tab

    }


写在最后:按照文档起初也是这样子写,win中一直调用不到参数,纠结了两晚上,最后灵光一闪,脑子一热,重新编译,哦了。所以遇到莫名其妙不是代码的问题的时候,重新编译过再来就对了!!!



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值