Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182

    document.height su DOM standard

    salve

    scusate per il titolo, spero che si capisca

    ho fatto un po' di ricerche prima di postare, ma non ho trovato quello che speravo...

    allora in pratica avrei bisogno di conoscere le dimensioni della parte interna della finestre del browser, per intenderci, quella in cui viene visualizzato il sito

    ho trovato che su Firefox la proprietà è ricavabile tramite document.height e document.width, mentre su IE mi pare di aver capito che bisogna utilizzare body.clientHeight e body.clientWidth

    ora il problema è che non esistono solo questi due browser e ho cercato dappertutto delle proprietà width ed height che andassero bene per tutti i browser, ma senza successo...

    sono fagiano io che non le ho trovate o proprio non esistono?

  2. #2
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    ho sentito poco parlare di document.width e height, esistono, pero' non le ho mai viste usare in alcuno script

    in genere si usa window.innerWidth e Height per determinare le dimensioni della porzione visibile di documento e queste 2 proprieta' sono presenti nella stragrande maggioranza dei browser moderni

    IE guardacaso fa eccezione
    qui document.body.clientWidth o document.documentElement.clientWidth e Height sono le proprieta' di riferimento (la seconda solo presente in IE6+ con doctype valido e completo, vedi qui per approfondimenti)

    consiglio vivamente di capire/smontare una funzioncina che usano lightbox e simili (non e' da prendersi come oro colato, si puo' fare di meglio, ma e' un buono spunto), questa:
    Codice PHP:
    // getPageSize()
    // Returns array with page width, height and window width, height
    // Core code from - quirksmode.org
    // Edit for Firefox by pHaez
    //
    function getPageSize(){
        
        var 
    xScrollyScroll;
        
        if (
    window.innerHeight && window.scrollMaxY) {    
            
    xScroll document.body.scrollWidth;
            
    yScroll window.innerHeight window.scrollMaxY;
        } else if (
    document.body.scrollHeight document.body.offsetHeight){ // all but Explorer Mac
            
    xScroll document.body.scrollWidth;
            
    yScroll document.body.scrollHeight;
        } else { 
    // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
            
    xScroll document.body.offsetWidth;
            
    yScroll document.body.offsetHeight;
        }
        
        var 
    windowWidthwindowHeight;
        if (
    self.innerHeight) {    // all except Explorer
            
    windowWidth self.innerWidth;
            
    windowHeight self.innerHeight;
        } else if (
    document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
            
    windowWidth document.documentElement.clientWidth;
            
    windowHeight document.documentElement.clientHeight;
        } else if (
    document.body) { // other Explorers
            
    windowWidth document.body.clientWidth;
            
    windowHeight document.body.clientHeight;
        }    
        
        
    // for small pages with total height less then height of the viewport
        
    if(yScroll windowHeight){
            
    pageHeight windowHeight;
        } else { 
            
    pageHeight yScroll;
        }

        
    // for small pages with total width less then width of the viewport
        
    if(xScroll windowWidth){    
            
    pageWidth windowWidth;
        } else {
            
    pageWidth xScroll;
        }

        
    arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight
        return 
    arrayPageSize;

    dove vengono considerati anche documenti piu' corti della della viewport,
    che non sempre si ipotizzano in fase di sviluppo ma che facilmente possono presentarsi nelle prove sul campo

  3. #3
    Utente di HTML.it L'avatar di and80
    Registrato dal
    Mar 2003
    Messaggi
    15,182
    ti ringrazio per la risposta, adesso leggo con attenzione il codice che hai postato
    in effetti non ho trovato nessun riferimento alle proprietà che mi hai indicato... ma probabilmente l'ho cercata nel posto sbagliato

    intanto sono andato avanti nelle prove e ho realizzato una funzioncina che mi restituisce l'altezza utilizzando document.height se il browser è Mozilla e document.body.clientHeight negli altri casi

    ora ho provato direttamente con Opera 9 e pare funzionare correttamente, poi ho utilizzato uno dei vari servizi di "browser shot" e ho visto che anche Safari e Firefox per Mac si comportano bene... adesso tenterò altre prove utilizzando innerHeight, ti ringrazio

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.