api.execScript
在指定 window 或者 frame 中执行脚本,对于 frameGroup 里面的 frame 也有效,若 name 和 frameName 都未指定,则在当前 window 中执行脚本,具体执行逻辑见补充说明。
execScript({params})
params
name:
- 类型:字符串
- 默认值:无
- 描述:(可选项)window 名称,若要跨 window 执行脚本,该字段必须指定,首页的名称为 root
frameName:
- 类型:字符串
- 默认值:无
- 描述:(可选项)frame名称
script:
- 类型:字符串
- 默认值:无
- 描述:js代码
示例代码
//在名为winName的window中执行jsfun脚本var jsfun = 'funcGoto();';
api.execScript({name: 'winName',script: jsfun
});//在名为winName的window中找到//名为frmName的frame,并在该frame中执行jsfun脚本var jsfun = 'funcGoto();';
api.execScript({name: 'winName',frameName: 'frmName',script: jsfun
});//在当前window中找到//名为frmName的frame,并在该frame中执行jsfun脚本var jsfun = 'funcGoto();';
api.execScript({frameName: 'frmName',script: jsfun
});
补充说明
统一处理逻辑为:exec->window->frame
name 参数: 当 name 不传值,或者传空字符串的情况下,execScript 对象为调用 execScript 的window(该 window 可能位于屏幕或者后台),在该 window 中继续 frameName 的逻辑; 当 name 传值且非空字符串,但并未找到名为 name 的 window,则直接返回不处理(不论 frameName 是否有值)。若找到了对应的 window,则在该 window 中继续 frameName 的逻辑;
frameName 参数: 当 frameName 不传值,或者传空字符串的情况下,execScript 对象为调用 execScript 的 window(该 window 可能位于屏幕或者后台),在该 window 中执行 script; 当 frameName 传值且非空字符串,但并未找到名为 frameName 的 frame,则直接返回不处理。若找到了该 frame,则在该 frame 中执行 script。
可用性
iOS系统,Android系统
接下来说一说这个方法在项目中的实际应用.
应用场景:
如上图所示,当选择入学时间,毕业时间的时候,需要从下方空白处弹出一个新的frame,在新的frame中添加模块控件
UICustomPicker,代码如下:
apiready = function(){
var text = api.pageParam.text4;
varUICustomPicker = api.require('UICustomPicker');
// if(UICustomPicker == nil){
UICustomPicker.open({
rect: {
x: 10,
y: 0,
w: 320,
h: 100
},
styles: {
bg: 'rgba(0,0,0,0)',
normalColor: '#959595',
selectedColor: '#3685dd',
selectedSize: 36,
tagColor: '#3685dd',
tagSize: 10
},
data: [{
tag: '年',
scope: '1980-2020'
}, {
tag: '月',
scope: ["01","02","03","04","05","06","07","08","09","10","11","12"]
}, {
tag: '日',
scope: ["01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"]
}],
rows: 3,
id:1,
fixedOn: api.frameName,
fixed: true
}, function( ret, err ){
if( ret ){
// alert( JSON.stringify( ret ) );
time = ret.data[0]+"-"+ret.data[1] + "-" + ret.data[2];
//使用execScriptAPI,将时间作为参数进行传递.
var param = { date: time};
api.execScript({
name: 'win_addExperience.html',
script: 'funcGoto('+JSON.stringify( param )+')'
});
}else{
// alert( JSON.stringify( err ) );
}
});
};
此时点击时间输入框,就有上图所示的效果了.最终想要的是想将模块控件的数据 填写到window的输入框,这里就要用到主人公execScript这个API接口了.
整个过程大致是这样的:在时间Picker中选好时间,直接将时间作为json格式的参数,通过execScript在父window执行script方法,从而实现功能.
//frame 中execScript方法
//使用execScriptAPI,将时间作为参数进行传递.
var param = { date: time};
api.execScript({
name: 'win_addExperience.html',
script: 'funcGoto('+JSON.stringify( param )+')'
});
//win_addExperience.html中的script方法
function funcGoto(time){
text4.value = time.date;
}
这样,就可以实现所要的功能了,还是非常方便的!
- 顶
- 0
- 踩
- 0
- 上一篇iOS简单的本地缓存
- 下一篇WKWebView与JS的交互
我的同类文章
- •APICloud平台的融云2.0优化2016-07-07阅读577
- •APICloud平台的融云2.0集成2016-04-06阅读3160
- •关于APICloud开发iOS出现不全屏问题2016-06-27阅读426
- •APICloud的iOS模块开发过程2016-02-17阅读574
- 猜你在找
转载于:https://www.cnblogs.com/shuibi/p/6404655.html
api.execScript相关推荐
- AUI 中execScript 方法详解
方法注释 在指定 window 或者 frame 中执行脚本,对于 frameGroup 里面的 frame 也有效,若 name 和 frameName 都未指定,则在当前 window 中执行脚本 ...
- html frame 菜单切换,官方底部导航如何通过frame0.html的JS控制切换
官方建立的默认底部导航窗口,在frame0里写了 api.setFrameGroupIndex({ name: 'group', index: 1, scroll:true }); } 页面跳转了,但 ...
- apcloud混合式开发app学习笔记
修改图标 新建项目 检出到本地 -------------------------- 1.api.ajax var loginName = $api.val($api.byId('uname')); ...
- apicloud mysql 登录_PHP+MySQL实现前台的登陆注册。
前台的注册页面 title html, body { height: 100%; } .row { position: relative; box-sizing: border-box; width: ...
- APICloud介绍
在APICloud创建了应用之后,应用的包结构如下图所示: 其中"config.xml"和 "index.html" 必须包含,其它均为可选."con ...
- apicloud常用方法总结
apicloud常用方法总结 获取设备编号.打开/关闭新页面.设置状态栏样式.ajax封装.获取上一页参数.退出APP...... /* =============================== ...
- ApiCloud组件
在APICloud创建了应用之后,应用的包结构如下图所示: 其中"config.xml"和 "index.html" 必须包含,其它均为可选."con ...
- apicloud ajax html,apicloud ajax请求问题
使用apicloud ajax往数据库插入数据时,如果时间长(60m左右),虽然数据成功插入,不过还会返回网络请求超时,或别的错误. 1.会返回'网络请求超时,请稍后重试!',代码如下 functio ...
- apicloud菜鸟教程_APICloud 对象之 Method
//openWin 打开window 若 window 已存在,则会把该 window 显示到最前面 api.openWin({ name:'page1', url:'./page1.html', p ...
- android环信删除会话列表,关于环信删除会话之后,从好友列表进入无法显示聊天消息...
如果不删除会话的时候,从好友列表点击进入可以显示历史聊天的的消息,只要执行删除会话,在从好友列表进入会话,聊天消息不显示,如果在聊天输入框发送消息,所有消息又会显示出来. 下面是调取环信接口的代码片段 ...
最新文章
- 基于OpenCV的彩色空间互转
- 008 Android之Service
- 如何用python生成表格_用 Python 生成 HTML 表格
- Running Maven project on Tomcat from Eclipse
- different way to retrieve SAP UI5 manifest
- 查询ElasticSearch:用SQL代替DSL
- 使用一个程序同时启动多个程序(c#)
- linux提取声卡的codec教程,发个菜鸟提取声卡codec文件图文教程,老手就别看了,小心被骂!...
- 易天ETU-link 100G QSFP28光模块系列资料
- 数据分析之分析美国人口
- 如何为ip v6设定子网
- 如何将本地文件夹映射为硬盘盘符?
- c语言编程秒表multisim,用定时器计数器设计一个简单的秒表.docx
- 7款可视化工具,提高开发效率必备
- JVM参数-X和-XX的区别
- 详解Docker的网络模式之host模式(host网络模式)
- 领导科学 读书笔记(一)
- Python中字典的常用方法
- w ndows10启动黑屏,Windows10系统电脑开机输入密码黑屏如何解决
- Docker Engine 安装时遇到的坑