删除警报时,变量将变为未定义

时间:2016-01-18 11:30:02

标签: javascript extjs extjs4.2

我有三个单独的标签面板,每个标签面板都是我数据库中的一个表格。我要做的是,只需单击一个按钮,就可以同时保存数据库中所有三个选项卡的内容。我设法通过激活选项卡,然后传递一定的值来实现。但是,当我从我的代码中删除两个警报功能时,我得到的是B.RECORD undefined。对此有何帮助?

      tabPanel.setActiveTab(1);
      tabPanel.setActiveTab(2);
      tabPanel.setActiveTab(0);

var B= window.frames["frm_B"];
var C= window.frames["frm_C"];

alert(B);
alert(C);
try {
    B.RECORD.getField("AID").setRealValue(aid);
    C.RECORD.getField("AID").setRealValue(aid);
    B.RECORD.update();
    C.RECORD.update();
    parent.refreshGrid();
    parent.win.close();

1 个答案:

答案 0 :(得分:2)

这似乎alert()为您提供了加载iframes的时间。您需要使用:

  1. setTimeout为帧提供任意加载时间。
  2. 使用.load()框架事件。
  3. 我希望你使用.load()事件,因为它是可靠的。因此,请将以下代码放在iframe的load事件中:

    try {
        B.RECORD.getField("AID").setRealValue(aid);
        C.RECORD.getField("AID").setRealValue(aid);
        B.RECORD.update();
        C.RECORD.update();
        parent.refreshGrid();
        parent.win.close();
    

    可以使用Javascript callback when IFRAME is finished loading?

    完成load事件