如何将事件监听器添加到尚未存在的元素(没有jQuery)?

时间:2014-06-05 01:07:50

标签: javascript

以下是我简化的方案:

我正在尝试访问页面“A”中的图像链接。所以我的脚本打开页面“A”。但事情并非那么简单。由于各种原因(即登录凭据,重定向),我不能只使用

window.open(url).getElement... 

因为我在这里得到的不包含我想要的目标图像。

我可以通过设置

来做到这一点(我做过)
window.open(url).onload=function(){//get the image};

也就是说,我可以在页面完全加载时获取图像(因此包括重定向)。

我的问题是,当元素尚未存在时,有没有办法让某些东西能够完成element.onload在这种情况下,无需等待图片完全加载即可获取图片网址。

1 个答案:

答案 0 :(得分:0)

图像对象对此有好处。 只需将此功能放在您要加载图像的位置即可。

function loadImageInto(id){
    var image = new Image(); 
    image.onload = function(){
        document.getElementById(id).src = image.src;
    };
    image.src = "imagefile.jpg";
}

如果你想要一个事件处理程序,你可以这样做。

function loadImageInto(id){
    return function(){
        var element = this;
        if(typeof id !== 'undefined'){
            element = document.getElementById(id);
        }
        var image = new Image(); 
        image.onload = function(){
            element.src = image.src;
        };
        image.src = "imagefile.jpg";
    }
}

这当然只有在您提前知道图片网址时才有效。