帖子
帖子
用户
博客
课程
显示全部楼层
26
帖子
0
勋章
158
Y币

[其他] openWin 回调

[复制链接]
发表于 2015-8-9 03:29:03
请问 openWin 有没有回调,比如a.html 调用openWin 打开b.html , 在b.html中能否通过opener或者其他办法找到a.html中的元素。



或者能否有弹出列表框选择一条记录,关闭弹出框,返回到主调用界面。。。。

谢谢!!!
8
帖子
0
勋章
1万+
Y币
api.openWin() 目前是没有回调的。

a.html 调用 api.openWin() 打开 b.html ,在 b.html 中调用 api.closeWin() 就能返回到 a.html。

窗口之间的交互可以考虑使用 api.execScript()
或者消息通信 api.sendEvent & api.addEventListener。
26
帖子
0
勋章
158
Y币
使用了api.execScript(),但是有个新问题,我在a.html中调用api.openWin(),打开b.html ,在b.html中调用api.openFrame()打开了c.html

在c.html中执行了api.execScript(),这样c.html能执行a.html中的js函数吗?

c.html中的api.execScript()写法是:

api.execScript({
                                name : 'a',
                                frameName:'c',
                                script : 'fun()'
                        });

其中 a 是a.html的名字
       c 是c.html的名字
       fun() 方法是放在 a.html中的。

这样可以的吗?
之所以出现了b.html是为了统一的样式。
5
帖子
0
勋章
1万+
Y币
王海龙 发表于 2015-8-9 12:02
使用了api.execScript(),但是有个新问题,我在a.html中调用api.openWin(),打开b.html ,在b.html中调用api. ...

不可以,这不是乱了吗,name   和  frameName必须一一对应
8
帖子
0
勋章
1万+
Y币
王海龙 发表于 2015-8-9 12:02
使用了api.execScript(),但是有个新问题,我在a.html中调用api.openWin(),打开b.html ,在b.html中调用api. ...

api.execScript()  中的 name 和 frameName 分别指的是所要执行的代码所在的窗口和子窗口名称。
如果要要执行的代码在窗口中,则不要设置 frameName。

所以,依据你的需求,直接写成这样就可以了
  1. api.execScript({
  2.         name: 'a',        
  3.         script: 'fun()'
  4. });
复制代码
您需要登录后才可以回帖 登录

本版积分规则