JavaScript的调用与window对象PARAMS功能(javascript calling

2019-10-18 03:13发布

所以我想调用这个方法:

refreshMoradaLabel =函数(idPlaceHolder){...};

随着窗口对象:

窗口[refreshMoradaLabel( '编号')]();

但是,这似乎并没有工作。 只有当该方法没有参数。 有没有办法使用工作window [ variable ] ()语法?

编辑;

确定这里是代码:

moarada.jsp与这些方法的代码:

<c:set var="methodOnClose" value="refreshDynamicValues" />
<c:if test="${empty fieldInstance || (not empty fieldInstance && isTramitacao)}">
  <c:set var="methodOnClose" value="refreshMoradaLabel(${dfieldId})" />
</c:if>
<a class="texto" href="#" onclick="editMoradaPopup('${dfieldId}','${methodOnClose}');" id="moradas_${dfieldId}"><img alt="${moradaDes}" src="${pageContext.request.contextPath}/images/icon/icon-pesquisa.png"></a>

window.refreshMoradaLabel =函数(idPlaceHolder){

    alert("label:" +idPlaceHolder);
    if($F(idPlaceHolder) != '') {
        //Update label
        new Ajax.Updater(idPlaceHolder+'_label', 'moradaPopupLocaleAware.do2?method=getLabel', 
                {method: 'get', parameters: 'id='+$F(idPlaceHolder)});
    }

};

window.editMoradaPopup =函数(idPlaceHolder,方法){警报(idPlaceHolder); Ext.onReady(函数(){行动= “$ {pageContext.request.contextPath} /moradaPopupLocaleAware.do2”;动作+ = “?方法=编辑&ID =” + $(idPlaceHolder)。价值;

        action += "&idPlaceHolder="+idPlaceHolder;
        action += "&savemorada=true";
        action += "&window=winchoose";      
        return ExtWindowAll('${moradaDes}',action,'','html',true,true,true,650,400,true,true,'fit', method);
    });

};

该方法ExtWindowAll最终从另一个js文件调用代码的结果调用关闭窗口的事件,该方法的名称(refreshMoaraLabel)包括可能则params的字符串:

winchoose.on( '关闭',功能(P){如果(functionOnClose){
警报( “方法:” + functionOnClose); VAR = SUBSTR functionOnClose.match(/(([^)] *))/); VAR PARAM = ''; 如果(!SUBSTR = NULL){PARAM = SUBSTR [1]; param="'"+param+"'"; PARAM = “ ' ”+ PARAM +“'”; } }

        debugger;
        if(window[functionOnClose]) {
            window[functionOnClose](param);
        }
    }
});

Answer 1:

试试这个方法: -

Window上下文的需要采取的函数名作为字符串。

 window ["refreshMoradaLabel"]();

  window ["refreshMoradaLabel"]('id');

相反,你试图调用窗口上下文中的方法。

窗口[refreshMoradaLabel( '编号')](); 当你这样做,你试图调用的结果refreshMoradaLabel('id')这是不确定的。 因为refreshMoradaLabel(“ID”)获取甚至达到了功能可按调用之前首先执行()窗口..



Answer 2:

window对象包含名称的属性refreshMoradaLabel 。 要访问属性,我们可以使用点或方括号:

window.refreshMoradaLabelwindow['refreshMoradaLabel']

该属性的值是一个函数。 要调用它,我们添加括号: window.refreshMoradaLabel('id')window['refreshMoradaLabel']('id')



文章来源: javascript calling a function with params on window object