AddEventListener函数不会执行

时间:2014-01-17 23:11:14

标签: javascript html html5

iFrameOn函数在页面加载时运行,直到它应该执行iBold函数才能正常工作。我已尽可能多地进行调试,并且所有似乎都很好。当我将每个变量输出到控制台时,值是正确的。它只是一行(iBold(targetiFrame);)不会运行。我不确定发生了什么。

function iFrameOn() { 
    var iFrames = document.querySelectorAll('form > iframe'); //Get all iframes in forms
    var bolds = new Array(), italics = new Array(), underlines = new Array(), targetiFrame;
var getRT = document.getElementsByClassName('richText');
    for (var rtIndex = 0; rtIndex < getRT.length;rtIndex++) { //Rich text event listeners
        var rtid = getRT[rtIndex].id;
        if (getRT[rtIndex].className == "richText bold") { //Bold text event listener
            console.log('The id is: '+rtid);
            bolds.push(rtid);
            console.log('The bolds array contains: '+bolds);
        } else if (getRT[rtIndex].className == 'richText underline') { //Underline text event listener
            underlines.push(getRT[rtIndex]);
        } else if (getRT[rtIndex].className == 'richText italic') { //Italic text event listener
            italics.push(getRT[rtIndex]);   
        }   
    }
    bolds.forEach(function(e, i, a) { //e = a[i]
        console.log('e is '+e);
        document.getElementById(e).addEventListener('click', function() {
            console.log(e+' was clicked!');
            targetiFrame = document.getElementById(e).getAttribute('data-pstid');
            iBold(targetiFrame);
        }, false);
    });
}

function iBold(target) { 
    if (target == 0) {
        document.getElementById('richTextField').contentDocument.execCommand('bold', false, null); 
        document.getElementById('richTextField').contentWindow.focus();
    } else {
        document.getElementById(target).contentDocument.execCommand('bold', false, null); 
        document.getElementById(target).contentWindow.focus();
    }
}

1 个答案:

答案 0 :(得分:0)

  

我显然在另一个js文件中有另一个iBold函数