有这样一个功能, 我在弹出的子窗口中填入数据后,提交,弹出对话框, 关闭子窗口
代码如下: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();
}

解决方案 »

  1.   


    作为对象传递
    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(); 
    }
      

  2.   


    楼主这个自己潜在的判断下实参个数就可以了
             promotMsg(opener.update); function promotMsg(){
    alert('success');
    arguments[0] && arguments[0]();// arguments
    window.close(); 
    }
      

  3.   

    var fun=parent.update;
    function promotMsg(){
       alert('success');
       (typeof arguments[0]=="function")&&(arguments[0]());
       window.close(); 
      }
      promotMsg(fun);
      

  4.   

    function promotMsg() { 
      alert('success');
      if(arguments[0]){
         arguments[0]();
      }
      window.close(); 
    }