web-dev-qa-db-fra.com

Image Javascript onLoad

Pourquoi onLoad ne se déclenche-t-il pas?

      function FULL_IMAGE(fimage){
        document.getElementById("FULL_SRC").onLoad = function(){
          offsetTop = document.getElementById("FULL_SRC").height / 2;
          offsetLeft = document.getElementById("FULL_SRC").width / 2;
          document.getElementById("FULL_SRC").style.marginTop="-"+offsetTop+"px";
          document.getElementById("FULL_SRC").style.marginLeft="-"+offsetLeft+"px";
        }
        document.getElementById("FULL_SRC").src=fimage;
        document.getElementById("FULL_VIEW").style.display="block";
      }
14
Shane Larson

parfois, lorsque l'image est récupérée à partir du cache du navigateur, l'événement onload n'est pas déclenché, vous pouvez donc faire un petit hack:

function FULL_IMAGE(fimage) {
    var loaded = false;
    function loadHandler() {
        if (loaded) {
            return;
        }
        loaded = true;
        /* your code */
    }
    var img = document.getElementById('FULL_SRC');
    img.addEventListener('load', loadHandler);
    img.src = fimage;
    img.style.display = 'block';
    if (img.complete) {
        loadHandler();
    }
}
37
otakustay

Dans mon code d'origine, j'ai utilisé onLoad pas onload... la deuxième ligne de code devrait se lire

document.getElementById("FULL_SRC").onload = function(){

avec un "l" minuscule dans onload.

9
Shane Larson