11550 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je tente de donne une dimension et une position sur la page d'après la grandeur de la fenetre et a chaque redimensionnement de celle-ci. Ça fonctionne nikel sur firefox et safari, mais sur explorer, le script n'est même pas 'engagé'.

le script :


window.addEventListener('load',center, false);
window.addEventListener('resize',center, false);

function center(){
    var width_page = 520;
    var height_page = 430;
    
    document.getElementById('contener').style.width = width_page;
    document.getElementById('contener').style.left = 0;
    document.getElementById('contener').style.height = height_page;
    document.getElementById('contener').style.top = 0;
    
    if (document.body.clientWidth>width_page){
        var marge_left = (document.body.clientWidth-width_page)/2;
        document.getElementById('contener').style.width = width_page+marge_left;
        document.getElementById('contener').style.left = marge_left;
    }
    
    if (document.body.clientHeight>height_page){
        var marge_top = (document.body.clientHeight-height_page)/2;
        document.getElementById('contener').style.height = height_page+marge_top;
        document.getElementById('page').style.top = marge_top;
    }
}


Je suppose que c'est le window.addEventListener('load',center, false); qui fonctionne pas sur explorer, mais qu'est-ce qu'il faut employer alors ? J'ai essayé avec window.attachEvent('onload', center); mais ça marche pas non plus.

Merci de votre aide
Essaie cette fonction :
function addEvent(obj, evType, fn){
 if (obj.addEventListener){
   obj.addEventListener(evType, fn, true);
   return true;
 } else if (obj.attachEvent){
   var r = obj.attachEvent("on"+evType, fn);
   return r;
 } else {
   return false;
 }
}


source
Bonjour,
Atepatien a écrit :
Bonjour,
Je tente de donne une dimension et une position sur la page d'après la grandeur de la fenetre et a chaque redimensionnement de celle-ci. Ça fonctionne nikel sur firefox et safari, mais sur explorer, le script n'est même pas 'engagé'.

Bien sûr, pour IE il faut utiliser
window.attachEvent('onload', center);
, mais en plus, chez IE6, suivant le doctype utilisé,
document.body.clientWidth
devient
document.documentElement.clientWidth
.Je le détecte comme ça:
D=document;db=!D.documentElement.clientWidth?D.body:D.documentElement 
//quirk IE6
Modifié par chmel (28 May 2005 - 23:38)