execScript

在指定 window 或者 frame 中执行脚本,对于 frameGroup 里面的 frame 也有效,若 name 和 frameName 都未指定,则在当前 window 中执行脚本,具体执行逻辑见补充说明。

execScript({params})

params

name:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)window 名称,若要跨 window 执行脚本,该字段必须指定,首页的名称为 root

frameName:

  • 类型:字符串
  • 默认值:无
  • 描述:(可选项)frame名称

script:

  • 类型:字符串
  • 默认值:无
  • 描述:js代码

示例代码

  1. //在当前window中执行jsfun脚本
  2. var jsfun = 'funcGoto();';
  3. api.execScript({
  4. script: jsfun
  5. });
  6. //在当前window中找到名为frmName的frame,并在该frame中执行jsfun脚本
  7. var jsfun = 'funcGoto();';
  8. api.execScript({
  9. frameName: 'frmName',
  10. script: jsfun
  11. });
  12. //在名为winName的window中执行jsfun脚本
  13. var jsfun = 'funcGoto();';
  14. api.execScript({
  15. name: 'winName',
  16. script: jsfun
  17. });
  18. //在名为winName的window中找到名为frmName的frame,并在该frame中执行jsfun脚本
  19. var jsfun = 'funcGoto();';
  20. api.execScript({
  21. name: 'winName',
  22. frameName: 'frmName',
  23. script: jsfun
  24. });

补充说明

统一处理逻辑为: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及更高版本