1、回调方法fun的参数列表为多个独立参数的情况
假设fun的定义体为如下形式:
// 参数列表为独立参数组成,第一个参数为错误号,第二个为错误消息
editor.setMessage = function(errorNo,errorMsg){
// TODO ...
}
那么,proxy.html的iframe:src用法为:
如上的iframe:src:proxy.html,最终会被解析为如下js代码,并执行:
// 没有设置scope参数,默认表示top窗口
top.editor.setMessage(1000,'数据提交成功');
2、回调方法fun的参数列表为JSON的情况
假设fun的定义体为如下形式:
// obj格式为:{errorNo:'',errorMsg:''}
editor.setMessage = function(obj){
// TODO ...
}
那么,proxy.html的iframe:src用法为:
如上的iframe:src:proxy.html,最终会被解析为如下js代码,并执行:
// 没有设置scope参数,默认表示top窗口
top.editor.setMessage({
errorNo: 1000,
errorMsg: '数据提交成功'
});
3、如果回调方法是在parent,而不是在top的情况,需要设置scope=parent
如上的iframe:src:proxy.html,最终会被解析为如下js代码,并执行:
// 在parent中执行回调
parent.editor.setMessage({
errorNo: 1000
});
4、如果scope所在窗口设置了document.domain,并且与proxy.html所在子域不一致,需要设置domain
如上的iframe:src:proxy.html,最终会被解析为如下js代码,并执行:
// 先在proxy.html中设置domain,然后执行回调
document.domain = 'doitbegin.com';
top.editor.setMessage({
errorNo: 1000
});