Skip to content

summer.execScript

gcht edited this page Sep 5, 2016 · 4 revisions

Summer对象核心方法

execScript

描述

在指定 window 或者 frame 中执行脚本,对于 frameGroup 里面的 frame 也有效(如支持frameGroup的情况下);
若 winId 和 frameId 都未指定,则在当前 window 中执行脚本,具体执行逻辑见补充说明。

使用场景:

1、在当前win内,一个frame可以执行其他frame的一个js方法,即frame-->frame
2、在当前win内,一个frame可以调用当前win的一个js方法,即frame-->win

语法

execScript({params})

params

winId:

类型:字符串
默认值:无
描述:(可选项)window 的id,若要跨 window 执行脚本,该字段必须指定。若没有指定,则表示在当前的win中

frameId:

类型:字符串
默认值:无
描述:(可选项)frame名称;若没有该参数,表示执行的脚本在win上

script:

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

示例代码

//在名为winName的window中执行jsfun脚本
var jsfun = 'funcGoto();';
summer.execScript({
    winId: 'winName',
    script: jsfun
});


//在名为winName的window中找到名为frmName的frame,并在该frame中执行jsfun脚本
var jsfun = 'funcGoto();';
summer.execScript({
    winId: 'winId',
    frameId: 'frmId',
    script: jsfun
});
或  
summer.execScript({
    winId: 'homeFixed',
    frameId : 'frame1',
    script : 'myCall('+num+');'    //运行时script:'mycall(13810012233)'
});


//在当前window中找到名为frmId的frame,并在该frame中执行jsfun脚本
var jsfun = 'funcGoto();';
api.execScript({
    frameId: 'frmId',
    script: jsfun
});

补充说明

统一处理逻辑为:exec->window->frame

winId参数: 当 id 不传值,或者传空字符串的情况下,execScript 对象为调用 execScript 的window(该 window 可能位于屏幕或者后台),在该 window 中继续 frameId 的逻辑;
当 id 传值且非空字符串,但并未找到名为 id 的 window,则直接返回不处理(不论 frameId是否有值);若找到了对应的 window,则在该 window 中继续 frameName 的逻辑;

frameId 参数: 当 frameId 不传值,或者传空字符串的情况下,execScript 对象为调用 execScript 的 window(该 window 可能位于屏幕或者后台),在该 window 中执行 script; 当 frameId 传值且非空字符串,但并未找到名为 frameId 的 frame,则直接返回不处理。若找到了该 frame,则在该 frame 中执行 script。

可用性
iOS系统,Android系统

Clone this wiki locally