Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何优化javascript代码_Javascript - Fatal编程技术网

如何优化javascript代码

如何优化javascript代码,javascript,Javascript,我得到一个错误“不要在循环中生成函数” 我的代码是 var iframe = document.getElementById('contentFrame'); var innerDoc = iframe.contentDocument || iframe.contentWindow.document; var buttons =innerDoc.getElementsByClassName('RIC_Metrics'); var WTz_linkric_rp; for (var i = 0; i

我得到一个错误“不要在循环中生成函数”

我的代码是

var iframe = document.getElementById('contentFrame');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var buttons =innerDoc.getElementsByClassName('RIC_Metrics');
var WTz_linkric_rp;
for (var i = 0; i < buttons.length; i++) {
    buttons[i].addEventListener('click', function() {
    var DCSuri = "/edge/web/public/viewGroupBenefits/RIC";

    if(this.id === "Retirement Income Center")
        WTz_linkric_rp = "TopNav_Retirement Income Centre";
    else(this.id === "Retirement Income Education")
        WTz_linkric_rp = "TopNav_Retirement Income Education";


    var grpId = Bootstrapper.data.extract('groupNumberForPreSignIn', 'cookie');
    if (typeof window.dcsMultiTrack == "function") window.dcsMultiTrack("DCS.dcsuri", DCSuri, "WT.z_linkric_rp_test", WTz_linkric_rp,"WT.z_cookieric_rp_test", grpId);
    });
}'
var-iframe=document.getElementById('contentFrame');
var innerDoc=iframe.contentDocument | | iframe.contentWindow.document;
var buttons=innerDoc.getElementsByClassName('RIC_Metrics');
var WTz_linkric_rp;
对于(变量i=0;i

我试图在每次单击时调用单击事件。任何帮助都可以接受。我无法优化代码。

尝试将函数置于循环之外,并在循环中分配函数:

var iframe = document.getElementById('contentFrame');
var innerDoc = iframe.contentDocument || iframe.contentWindow.document;
var buttons =innerDoc.getElementsByClassName('RIC_Metrics');
var WTz_linkric_rp;

function onClick() {
    var DCSuri = "/edge/web/public/viewGroupBenefits/RIC";

    if(this.id === "Retirement Income Center")
        WTz_linkric_rp = "TopNav_Retirement Income Centre";
    else(this.id === "Retirement Income Education")
        WTz_linkric_rp = "TopNav_Retirement Income Education";


    var grpId = Bootstrapper.data.extract('groupNumberForPreSignIn', 'cookie');
    if (typeof window.dcsMultiTrack == "function") window.dcsMultiTrack("DCS.dcsuri", DCSuri, "WT.z_linkric_rp_test", WTz_linkric_rp,"WT.z_cookieric_rp_test", grpId);
}

for (var i = 0; i < buttons.length; i++) {
    buttons[i].addEventListener('click', onClick, false);
}
var-iframe=document.getElementById('contentFrame');
var innerDoc=iframe.contentDocument | | iframe.contentWindow.document;
var buttons=innerDoc.getElementsByClassName('RIC_Metrics');
var WTz_linkric_rp;
函数onClick(){
var DCSuri=“/edge/web/public/viewGroupBenefits/RIC”;
如果(this.id==“退休收入中心”)
WTz_linkric_rp=“TopNav_退休收入中心”;
else(this.id==“退休收入教育”)
WTz_linkric_rp=“TopNav_退休收入教育”;
var grpId=Bootstrapper.data.extract('groupNumberForPreSignIn','cookie');
if(type of window.dcsMultiTrack==“function”)window.dcsMultiTrack(“DCS.dcsuri”,dcsuri,“WT.z_linkric_rp_测试”,WTz_linkric_rp,“WT.z_cookieric_rp_测试”,grpId);
}
对于(变量i=0;i
如果不使用postMessage API,则无法跨iframe访问内容文档