在指定 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系统

可提供的1.0.0及更高版本
//在名为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
});

接下来说一说这个方法在项目中的实际应用.

应用场景:

如上图所示,当选择入学时间,毕业时间的时候,需要从下方空白处弹出一个新的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

}, functionreterr ){

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(4)
  • •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

猜你在找
开发LinuxShell脚本程序【一】开发LinuxShell脚本程序(三)开发LinuxShell脚本程序(二)windows批处理教程开发LinuxShell脚本程序(四)参数解析和扩充
apicloud开发中遇到的一些问题的整理缩短移动开发周期的ApiCloud分享一下通过apicloud开发APP支付物联网APP开发利器之APICloud关于apicloud开发注意事项

转载于:https://www.cnblogs.com/shuibi/p/6404655.html

api.execScript相关推荐

  1. AUI 中execScript 方法详解

    方法注释 在指定 window 或者 frame 中执行脚本,对于 frameGroup 里面的 frame 也有效,若 name 和 frameName 都未指定,则在当前 window 中执行脚本 ...

  2. html frame 菜单切换,官方底部导航如何通过frame0.html的JS控制切换

    官方建立的默认底部导航窗口,在frame0里写了 api.setFrameGroupIndex({ name: 'group', index: 1, scroll:true }); } 页面跳转了,但 ...

  3. apcloud混合式开发app学习笔记

    修改图标 新建项目 检出到本地 -------------------------- 1.api.ajax var loginName = $api.val($api.byId('uname')); ...

  4. apicloud mysql 登录_PHP+MySQL实现前台的登陆注册。

    前台的注册页面 title html, body { height: 100%; } .row { position: relative; box-sizing: border-box; width: ...

  5. APICloud介绍

    在APICloud创建了应用之后,应用的包结构如下图所示: 其中"config.xml"和 "index.html" 必须包含,其它均为可选."con ...

  6. apicloud常用方法总结

    apicloud常用方法总结 获取设备编号.打开/关闭新页面.设置状态栏样式.ajax封装.获取上一页参数.退出APP...... /* =============================== ...

  7. ApiCloud组件

    在APICloud创建了应用之后,应用的包结构如下图所示: 其中"config.xml"和 "index.html" 必须包含,其它均为可选."con ...

  8. apicloud ajax html,apicloud ajax请求问题

    使用apicloud ajax往数据库插入数据时,如果时间长(60m左右),虽然数据成功插入,不过还会返回网络请求超时,或别的错误. 1.会返回'网络请求超时,请稍后重试!',代码如下 functio ...

  9. apicloud菜鸟教程_APICloud 对象之 Method

    //openWin 打开window 若 window 已存在,则会把该 window 显示到最前面 api.openWin({ name:'page1', url:'./page1.html', p ...

  10. android环信删除会话列表,关于环信删除会话之后,从好友列表进入无法显示聊天消息...

    如果不删除会话的时候,从好友列表点击进入可以显示历史聊天的的消息,只要执行删除会话,在从好友列表进入会话,聊天消息不显示,如果在聊天输入框发送消息,所有消息又会显示出来. 下面是调取环信接口的代码片段 ...

最新文章

  1. 基于OpenCV的彩色空间互转
  2. 008 Android之Service
  3. 如何用python生成表格_用 Python 生成 HTML 表格
  4. Running Maven project on Tomcat from Eclipse
  5. different way to retrieve SAP UI5 manifest
  6. 查询ElasticSearch:用SQL代替DSL
  7. 使用一个程序同时启动多个程序(c#)
  8. linux提取声卡的codec教程,发个菜鸟提取声卡codec文件图文教程,老手就别看了,小心被骂!...
  9. 易天ETU-link 100G QSFP28光模块系列资料
  10. 数据分析之分析美国人口
  11. 如何为ip v6设定子网
  12. 如何将本地文件夹映射为硬盘盘符?
  13. c语言编程秒表multisim,用定时器计数器设计一个简单的秒表.docx
  14. 7款可视化工具,提高开发效率必备
  15. JVM参数-X和-XX的区别
  16. 详解Docker的网络模式之host模式(host网络模式)
  17. 领导科学 读书笔记(一)
  18. Python中字典的常用方法
  19. w ndows10启动黑屏,Windows10系统电脑开机输入密码黑屏如何解决
  20. Docker Engine 安装时遇到的坑

热门文章

  1. 使用这6个技巧来物理保护 MacBook
  2. 专访1药网董事长于刚:若没刘峻岭 就没我后面创业的精彩
  3. Reflector:.NET反编译工具及导出CS文件插件
  4. NAnt0.92版本首次在windows 8.1的机子上运行报错的问题解决
  5. 快速打开 Mac OS X 隐藏的用户资源库文件夹
  6. SpringMVC深度探险(一) —— SpringMVC前传
  7. 读取文件的例子 IO
  8. java core 之 异常处理详解
  9. 图解 MySQL 索引,写得实在太好了!
  10. 重磅:IntelliJ IDEA 2020.2 EAP 5 已发布,可完美支持Java 15