Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    IE problema con il controllo della proprietà innerHeight

    Sto modificando una pagina di sfiffing per flash player.
    Una volta massimizzata la finestra, il mio problema è quello di fare un controllo dell'altezza interna della finestra.
    Se questa è minore di 460 fare un location.replace verso la pagina noflash.html perchè con dimensioni inferiori la pagina flash è illeggibile.
    Il codice è

    window.resizeTo(screen.availWidth + 8, screen.availHeight + 6);
    window.moveTo(-4, -4);
    if (window.innerHeight < 460) {
    if(jsVersion > 1.0) {window.location.replace("noflash.html");}
    else {window.location = "noflash.html";}
    }

    funziona con tutti i browser eccetto IE (6)
    sembrerà assurdo che qualcuno abbia dimensioni dello schermo inferiori, ma devo purtroppo ovviare anche a questo problema.

    Fate le vostre prove, aprite IE, ridimensionate la finestra fino a raaggiungere altezza sicuramente inferiore a 460, aprite la pagina e controllate se fa il redirect.

    Ovviamente dovete inserire il codice commentando la prima riga

    grazie per l'attenzione

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    311
    prova a fare il controllo così (non ho messo il controllo della versione, tanto il replace è supportato da tutti i browser da IE4/NN4 in poi)

    codice:
    var h=document.body.clientHeight?document.body.clientHeight:window.innerHeight;
    if (h < 460) { 
      window.location.replace("noflash.html"); 
    }

  3. #3
    ho provato, da errore sulla prima riga alla dichiarazione della variabile h : necessatio oggetto codice 0.
    Sarà sicuramente una cavolata correggerlo, ma non ho mai studiato le regole sintattiche di base. Cosa devo aggiungere?

  4. #4
    Utente di HTML.it L'avatar di Xinod
    Registrato dal
    Sep 2000
    Messaggi
    13,649
    se richiami document.body.clientHeight
    prima che nel codice sia stato definito il tag <body> chiaramente avrai errore,
    purtroppo non vi è altra soluzione che avviare i controlli al termine del caricamento (<body onload="tua_funzione()")
    ciao

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2003
    Messaggi
    311
    se lo script lo metti subito dentro il <body> funziona (almeno a me)

  6. #6
    RISULTATO:
    nessun errore nell'interpretazione del codice. Tuttavia non funziona più nemmeno con opera, mozilla e netscape (e IE)

    che fare?

  7. #7
    ho risolto, il codice non veniva eseguito perchè portandolo all'interno di <body> veniva perceduto dal redirect dello sniffer par flash... errore da dilettante. adesso va a meraviglia, grazie a tutti

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.