有这样一个功能, 我在弹出的子窗口中填入数据后,提交,弹出对话框, 关闭子窗口
代码如下:alert('success');
window.close();
现在我有一个问题是:在子窗口调用父窗口JAVASCRIPT函数, window.parent.update();
变成这样:
function promotMsg() {
alert('success');
window.parent.update();
window.close();
}能不能把update函数当一个参数传到promotMsg中呢, 然后执行update 方法,如果没有传入这个参数,就不执行这个方法?function promotMsg(update) {
alert('success');
window.parent.update();
window.close();
}
代码如下:alert('success');
window.close();
现在我有一个问题是:在子窗口调用父窗口JAVASCRIPT函数, window.parent.update();
变成这样:
function promotMsg() {
alert('success');
window.parent.update();
window.close();
}能不能把update函数当一个参数传到promotMsg中呢, 然后执行update 方法,如果没有传入这个参数,就不执行这个方法?function promotMsg(update) {
alert('success');
window.parent.update();
window.close();
}
作为对象传递
promotMsg(opener.update);function promotMsg(fun){
alert('success');
if(fun) fun();
window.close();
}作为字符串
promotMsg("update")
function promotMsg(sfun){
alert('success');
var fun;
eval("fun=opener." + sfun + ";")
if(fun) fun();
window.close();
}
楼主这个自己潜在的判断下实参个数就可以了
promotMsg(opener.update); function promotMsg(){
alert('success');
arguments[0] && arguments[0]();// arguments
window.close();
}
function promotMsg(){
alert('success');
(typeof arguments[0]=="function")&&(arguments[0]());
window.close();
}
promotMsg(fun);
alert('success');
if(arguments[0]){
arguments[0]();
}
window.close();
}