HighDots Forums  

disattivazione pagina

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss disattivazione pagina in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Maximus
 
Posts: n/a

Default disattivazione pagina - 05-05-2008 , 01:25 PM






Chi non conosce html.it? Ecco, avete presente l'effetto che talvolta produce
l'oscurazione(?) della pagina mentre rimane aperta la pubblicità? Come si
ottiene? L'effetto naturalmente deve anche impedire, come nelle pagine di
html.it, di navigare, quindi come se si avesse la disattivazione della
pagina.

ciao Maximus



Reply With Quote
  #2  
Old   
Ugo
 
Posts: n/a

Default Re: disattivazione pagina - 05-05-2008 , 02:05 PM






Quote:
Chi non conosce html.it? Ecco, avete presente l'effetto che talvolta produce
l'oscurazione(?) della pagina mentre rimane aperta la pubblicità? Come si
ottiene? L'effetto naturalmente deve anche impedire, come nelle pagine di
html.it, di navigare, quindi come se si avesse la disattivazione della
pagina.
Se non ho capito male, altro non è che un DIV grande quanto il contenuto di
tutta la pagina di colore nero/grigio al quale è stato applicato un effetto
di opacità ed è stato posto sopra a tutti elementi della pagina
allora se cerchi nel NG trovi una funzione per imporre la trasparenza agli
elementi (cross-browser)
sempre nel NG trovi una funzione per determinare la dimensione della pagina
dopo di che il gioco è quasi fatto

Ciao


Reply With Quote
  #3  
Old   
Maximus
 
Posts: n/a

Default Re: disattivazione pagina - 05-06-2008 , 06:52 PM




"Ugo" <privacy (AT) nospam (DOT) it> ha scritto

Quote:
Se non ho capito male, altro non è che un DIV grande quanto il contenuto
di
tutta la pagina di colore nero/grigio al quale è stato applicato un
effetto
di opacità ed è stato posto sopra a tutti elementi della pagina
allora se cerchi nel NG trovi una funzione per imporre la trasparenza agli
elementi (cross-browser)
sempre nel NG trovi una funzione per determinare la dimensione della
pagina
dopo di che il gioco è quasi fatto
Esattamente, un div che copre tutto, non ci avevo pensato. Ok, sono andato a
cercare sul ng, più che altro la funzione per il calcolo delle dimensioni
della pagina, ma ho trovato questo document.documentElement.clientHeight che
ho provato ma non mi funziona, mi restituisce 0 (zero) se faccio un alert.
Ci manca qualcosa?

ciao Maximus




Reply With Quote
  #4  
Old   
Ugo
 
Posts: n/a

Default Re: disattivazione pagina - 05-07-2008 , 03:36 AM



....
Quote:
dopo di che il gioco è quasi fatto

Esattamente, un div che copre tutto, non ci avevo pensato. Ok, sono andato a
cercare sul ng, più che altro la funzione per il calcolo delle dimensioni
della pagina, ma ho trovato questo document.documentElement.clientHeight che
ho provato ma non mi funziona, mi restituisce 0 (zero) se faccio un alert.
Ci manca qualcosa?
devi controllare se stai lavorando in standard o quirks mode:

var db = (document.compatMode && document.compatMode.toLowerCase() !=
"backcompat")?
document.documentElement
: (document.body || null);


dopo di che' puoi evocare quei metodi più correttamente:
h = db.clientHeight


Reply With Quote
  #5  
Old   
ZER0
 
Posts: n/a

Default Re: disattivazione pagina - 05-07-2008 , 03:54 AM



On Wed, 7 May 2008 09:36:22 +0200, Ugo wrote:

Quote:
var db = (document.compatMode && document.compatMode.toLowerCase() !=
"backcompat")?
document.documentElement : (document.body || null);

dopo di che' puoi evocare quei metodi più correttamente:
h = db.clientHeight
A meno che tu (o chi ha scritto quella riga di codice, visto che l'ho
già trovata più di una volta in rete) non conosca una valida ragione,
ovvero qualche bug di implementazione da parte dei browser, direi che
il toLowerCase() è ridondante. Sarebbe sufficiente:

document.compatMode != "BackCompat"

Inoltre devi essere coerente: se includi come valore possibile "null"
per la variabile, non puoi considerarla per forza o documentElement o
body. Quindi anche il codice sottostante deve tenerne conto. Qualcosa
del tipo:

var h = 0;

if ( db != null && db.clientHeight )
h = db.clientHeight;

--
~ "Chi ci priva della libertà in nome della sicurezza,
non si merita nessuna delle due cose, nè la libertà,
nè la sicurezza." (Henry Adams)



Reply With Quote
  #6  
Old   
Maximus
 
Posts: n/a

Default Re: disattivazione pagina - 05-07-2008 , 01:39 PM




"Ugo" <privacy (AT) nospam (DOT) it> ha scritto

Quote:
devi controllare se stai lavorando in standard o quirks mode:

var db = (document.compatMode && document.compatMode.toLowerCase() !=
"backcompat")?
document.documentElement
: (document.body || null);


dopo di che' puoi evocare quei metodi più correttamente:
h = db.clientHeight
Senti, non so cosa sia lo standard e quirks mode, c'è qualche buon tutorial?

ciao




Reply With Quote
  #7  
Old   
Ugo
 
Posts: n/a

Default Re: disattivazione pagina - 05-07-2008 , 06:09 PM



[cut]
Quote:
toLowerCase() è ridondante.
Sarebbe sufficiente:

document.compatMode != "BackCompat"

Sì è probabile e forse lo è per la totalità dei browser di ora e di sempre,
tuttavia io sono dell'idea di perseverare diabolicamente su questo spreco
di risorse :P
così come per tagName...

Quote:
Inoltre devi essere coerente: se includi come valore possibile "null"
per la variabile, non puoi considerarla per forza o documentElement o
body. Quindi anche il codice sottostante deve tenerne conto.
Qualcosa del tipo:

var h = 0;

if ( db != null && db.clientHeight )
h = db.clientHeight;
sì sì, ma anche se dico "dopo di che' puoi evocare quei metodi più
correttamente:" non escludo necessariamente che sarebbero doverosi dei
controlli...
Cmq, ti dico che stavo per farlo, poi pero' sono stato disincentivato dal
fatto che allora, se andiamo a vedere, manco potrebbe esistere
"db.clientHeight" e bisognerebbe fare i controlli con typeof e in tal caso
tentare con qualcos'altro tipo window.innerHeight...


Reply With Quote
  #8  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: disattivazione pagina - 05-08-2008 , 02:47 AM



Il Wed, 7 May 2008 19:39:41 +0200, Maximus ha scritto:

Quote:
Senti, non so cosa sia lo standard e quirks mode, c'è qualche buon tutorial?
http://developer.mozilla.org/en/docs...7s_Quirks_Mode

--
"Ho smesso di fumare.
Vivrò una settimana di più.
E in quella settimana pioverà a dirotto"
W.A.


Reply With Quote
  #9  
Old   
ZER0
 
Posts: n/a

Default Re: disattivazione pagina - 05-08-2008 , 04:10 AM



On Thu, 8 May 2008 00:09:23 +0200, Ugo wrote:

Quote:
Sì è probabile e forse lo è per la totalità dei browser di ora e di sempre,
tuttavia io sono dell'idea di perseverare diabolicamente su questo spreco
di risorse :P
così come per tagName...
E allora dovresti farlo per qualunque cosa. Ad esempio, come fa a dire
che un browser ti prende:

document.getElementsByTagName("ul")

piuttosto che:

document.getElementsByTagName("UL")

?
Per coerenza con quanto scrivi, dovresti fare ogni sacrosanta volta la
chiamata alla prima istruzione, e se non ti ritorna niente tentare con
la seconda. Se sei paranoico, optare anche per "uL" e "Ul".
Stesso discorso vale per qualsiasi altro metodo e proprietà che prende
come parametro o ha come valore una stringa; compreso "getElementById"
e soci. In quest'ultimo caso tu potresti dire "uso il valore che viene
scritto nel codice HTML" ma sai quanto me che il codice che il browser
utilizza internamente è diverso da quello letto.
Inoltre, Opera ci ha insegnato che il modo in cui facciamo le cose nel
browser viene rispettato: vedasi l'ordine in cui venivan recuperate le
proprietà di un oggetto. Il punto è questo. Conoscere quello su cui si
lavora.

Come è già stato scritto in questo NG, è vero che non ci si può fidare
del client, ma in ogni caso si lavora su un minimo di basi e standard.
Del resto, non mi pare che tu scriva codice per Netscape 4 o IE4 o per
tutti i dispositivi mobili. Quindi tu già dai per scontate determinate
convenzioni e strutture.
E sinceramente non capisco con quale criterio dare per scontate cose e
metterne in dubbio altre, visto che stanno sul medesimo livello, senza
che vi siano sospetti reali di supporto fallace.

Ha senso "sprecare" risorse laddove sappiamo che c'è un problema noto;
non ha senso farlo "a priori" su cose in cui non ce n'è il sospetto in
quanto significherebbe, per coerenza, mettere in discussione tutto ciò
che il browser potrebbe o non potrebbe implementare, ma soprattutto il
"come" lo implementa (che è il nocciolo della questione).

Quote:
Inoltre devi essere coerente: se includi come valore possibile "null"
per la variabile, non puoi considerarla per forza o documentElement o
body. Quindi anche il codice sottostante deve tenerne conto.
Qualcosa del tipo:

var h = 0;

if ( db != null && db.clientHeight )
h = db.clientHeight;

sì sì, ma anche se dico "dopo di che' puoi evocare quei metodi più
correttamente:" non escludo necessariamente che sarebbero doverosi dei
controlli...
Ma non ne hai fatto menzione. La maggior parte degli utenti che scrive
domande in questo NG, avrebbe preso e utilizzato quel codice, di certo
non avrebbero aggiunto controlli di alcun tipo.
Inoltre i "doverosi controlli" erano una sola riga, ti ci potevi anche
sprecare.
Era preferibile non mettere "null" come terzo valore se poi non andavi
a gestirlo successivamente.

Quote:
Cmq, ti dico che stavo per farlo, poi pero' sono stato disincentivato dal
fatto che allora, se andiamo a vedere, manco potrebbe esistere
"db.clientHeight"
Infatti. Nella correzione che ti ho fatto questo viene preso di conto.
Se "db.clientHeight" non esiste il valore di "h" rimane zero; e non va
in errore come nel tuo caso.

A quel punto diventa una mera questione logica, non tecnica. Ovvero va
visto a cosa gli serviva tale valore, e agire di conseguenza quando si
ottiene un risultato pari a zero.
Con il mio post non ho risposto all'OP, né ho fornito una soluzione al
problema da un punto di vista di "logica applicativa"; ho sottolineato
un paio di passaggi da un punto di vista di "scrittura codice" che non
erano propriamente corretti.

Quote:
e bisognerebbe fare i controlli con typeof
E il typeof su cosa lo vorresti fare?

Quote:
e in tal caso tentare con qualcos'altro tipo window.innerHeight...
Beh potevi farlo, del resto per body e documentElement lo hai fatto...
Oppure, potevi non contemplare un valore che poi non andavi a usare; o
decidere a livello di logica applicativa, che se dopo tutti quei check
la variabile "h" era pari a zero, allora il browser in uso non era tra
quelli "fidati" sul quale eseguire il codice per il quale andava usato
il valore di "h" (poteva anche voler dire che il document tree non era
pronto, in tal caso il codice non andava comunque eseguito).

Tutti e tre sono scenari condivisibili o meno, ma sicuramente coerenti
da un punto di vista di programmazione e codice; cosa che invece non è
l'assegnazione di valori che poi non si contemplano successivamente, a
maggior ragione se possono sollevare un'eccezione.

--
~ Se i miei cattivi pensieri non fossero caricati a salve, ogni giorno
sarebbe una strage.



Reply With Quote
  #10  
Old   
Ugo
 
Posts: n/a

Default Re: disattivazione pagina - 05-08-2008 , 07:24 AM



Quote:
Sì è probabile e forse lo è per la totalità dei browser di ora e di sempre,
tuttavia io sono dell'idea di perseverare diabolicamente su questo spreco
di risorse :P
così come per tagName...
E allora dovresti farlo per qualunque cosa. Ad esempio, come fa a dire
che un browser ti prende:
document.getElementsByTagName("ul")
piuttosto che:
document.getElementsByTagName("UL")
?
ma questo è un parametro di cui avevo la sicurezza che non fosse case
sensitive

Quote:
Per coerenza con quanto scrivi, dovresti fare ogni sacrosanta volta la
chiamata alla prima istruzione, e se non ti ritorna niente tentare con
la seconda. Se sei paranoico, optare anche per "uL" e "Ul".
ho capito

Quote:
Stesso discorso vale per qualsiasi altro metodo e proprietà che prende
come parametro o ha come valore una stringa; compreso "getElementById"
e soci.
Sì io avrei distinto tra parametro e retituzione di valore, pero' ti sto
seguendo e in effetti sarei portato a darti ragione

[cut]
Quote:
Il punto è questo. Conoscere quello su cui si lavora.
ok, il mio punto di vista che mi stai corregendo era il seguente: io non ho
una conoscienza amplissima dei conportamenti dei vari browser e dal momento
che ho trovato quel codice da fonti abbastanza autorevoli, non mi sono
posto tanto il problema e ho preso atto che ci poteva essere un concreto
rischio, considerando, poi, la poca fatica che mi faceva...

Quote:
Come è già stato scritto in questo NG, è vero che non ci si può fidare
del client, ma in ogni caso si lavora su un minimo di basi e standard.
Del resto, non mi pare che tu scriva codice per Netscape 4 o IE4 o per
tutti i dispositivi mobili. Quindi tu già dai per scontate determinate
convenzioni e strutture.
è vero

Quote:
E sinceramente non capisco con quale criterio dare per scontate cose e
metterne in dubbio altre, visto che stanno sul medesimo livello, senza
che vi siano sospetti reali di supporto fallace.
e questo io non lo sapevo, ho dedotto che altri li hanno trovati...

Quote:
sì sì, ma anche se dico "dopo di che' puoi evocare quei metodi più
correttamente:" non escludo necessariamente che sarebbero doverosi dei
controlli...

Ma non ne hai fatto menzione. La maggior parte degli utenti che scrive
domande in questo NG, avrebbe preso e utilizzato quel codice, di certo
non avrebbero aggiunto controlli di alcun tipo.
ah ok

Quote:
Inoltre i "doverosi controlli" erano una sola riga, ti ci potevi anche
sprecare.
:P


Quote:
Cmq, ti dico che stavo per farlo, poi pero' sono stato disincentivato dal
fatto che allora, se andiamo a vedere, manco potrebbe esistere
"db.clientHeight"

Infatti. Nella correzione che ti ho fatto questo viene preso di conto.
Se "db.clientHeight" non esiste il valore di "h" rimane zero; e non va
in errore come nel tuo caso.
Sì, è vero

Quote:
e bisognerebbe fare i controlli con typeof

E il typeof su cosa lo vorresti fare?
a db.clientHeight

Quote:
e in tal caso tentare con qualcos'altro tipo window.innerHeight...

Beh potevi farlo, del resto per body e documentElement lo hai fatto...
non ne avevo voglia e come dicevi tu era codice (potenzialmente errato) per
browser moderni

Quote:
Oppure, potevi non contemplare un valore che poi non andavi a usare;
capito

[cut]
Quote:
Tutti e tre sono scenari condivisibili o meno, ma sicuramente coerenti
da un punto di vista di programmazione e codice; cosa che invece non è
l'assegnazione di valori che poi non si contemplano successivamente, a
maggior ragione se possono sollevare un'eccezione.
ok


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.