Newsgroup: it.comp.lang.javascript
Titolo: window.open e problema con firefox

Ciao a tutti,
Premesso che con IE funziona tutto correttamente, ho notato che quando apro 
una finestra (figlia) da una finestra (madre) tramite firefox, nonostante 
abbia impostato il parametro noresize a true; avviene che firefox ignora 
questo parametro, permettendo cosi all'utente finale di ridimensionare la 
finestra (figlia) ugualmente.
Premetto che in qualche versione precedente di firefox questo non accadeva; 
per cui non so come risolvere il problema, vi ringrazio in anticipo se 
potete aiutarmi.
Grazie ancora.
Cooper. 

 finestra (figlia) ugualmente.
Dalla documentazione:
 
https://developer.mozilla.org/En/DOM/Window.open
 - Non vedo il parametro "noresize" ma vedo "resizable"; 
 - Dice che dalla 3.0 è sempre resizable la popup;
 - l'utente può forzarne il valore.
e, IMHO, direi meno male, sono fastidiosissime le popup non
ridimensionabili.
-- 
"Io odio
 perché sfruttati si nasce magari ci si diventa
 però non lo si inventa"
									99


Vero però spulciando sul sito di mozilla, ho visto che è anche un bug:
 
https://bugzilla.mozilla.org/show_bug.cgi?id=177838
e se ho capito bene basterebbe forzare il valore usando l'istruzione:
            pref("dom.disable_window_open_feature.resizable",   true);
Però non ho capito perchè non funziona... vale a dire che in IE viene 
rilevato un errore e in FF viene del tutto ignorato.
Quasi sicuramente ho sbagliato a interpretrare l'istruzione, ma volendo 
comunque forzare tale chiave e portarla da false a true... come dovrei fare?
Dopotutto è una variabile booleana che ha due valori... e non uno soltanto.
La domanda nasce spontanea, ho l'esigenza di dover rendere fissa la 
finestra, sia perchè il suo contenuto ha dimensioni fisse... sia perchè se 
l'utente comincia ad allargarla etc, esteticamente è anche peggio e può 
essere pensato come un bug dovuto al programmatore... e non al browser...
Grazie ancora per il tuo aiuto, spero potrai indicarmi come poter risolvere 
seguendo almeno questa strada.
Cooper.
 

 rilevato un errore e in FF viene del tutto ignorato.
Solo firefox, non č una cosa di IE
-- 
"That until there is no longer first class
And second class citizens of any nation
Until the colour of a man's skin
Is of no more significance than the colour of his eyes
Me say war"
									B.M.


Capisco, allora provo a seguire un altra strada, rendendo il tutto 
liquido... ho solo un problema che spero puoi aiutarmi a risolvere.
La finestra popup si apre inizialmente a una dimensione (X,Y), considerando 
che firefox rende dimensionabile la finestra, e poichè il contenuto è 
suddiviso in due sezioni (una superiore e una inferiore), mi trovo in questa 
situazione:
La sezione inferiore ha altezza fissa: 50px mentre dovrei fare in modo che 
la sezione superiore avesse una dimensione pari al 100% della finestra meno 
i 50% della sezione inferiore, come faccio a calcolare la nuova percentuale?
So che dovrei intervenire sul css... e quindi magari posso andare ot per 
questo newsgroup... però se riesci a indicarmi la soluzione ugualmente te ne 
sarei grato.
Cooper.
 

 i 50% della sezione inferiore, come faccio a calcolare la nuova percentuale?
sai che non ho capito? se quella inferiore č fissa a 50px, quella superiore
sarą per forza tutto il resto, ovvero il 100% della finestra meno 25px ...
-- 
"Run rabbit run
 dig that hole, forget the sun
 and when at last the work is done
 don't sit down, it's time to dig another one"
									    P.F.


Mi spiego meglio.
Io apro la finestra alla dimensione mettiamo 400 (altezza) x 300 
(larghezza); di questi 400 pixel 50 li devo riservare ad una seconda sezione 
(quella inferiore) per cui il box superiore ha una altezza di 350 pixel.
Sotto il box superiore inserisco un altro box di altezza 50 pixel; la cui 
somma appunto 350+50 č di 400 pixel ovvero la dimensione iniziale della 
finestra.
Ora (ho risolto il problema della larghezza per i due box, ponendo in 
entrambi width a 100% nel css, perņ non ho risolto il problema dell'altezza 
del box superiore... che a questo punto diventa una altezza relativa alla 
dimensione della finestra e cioč il 100% della finestra meno i 50 pixel 
destinati al box inferiore.
In teoria dovrei scrivere sul css qualcosa del tipo:  height: 100%-50px ma 
ovviamente non ha senso... per cui chiedevo come risolvere questo problema.
Grazie ancora.
Cooper. 

 ovviamente non ha senso... per cui chiedevo come risolvere questo problema.
Così in generale (magari ti serve): se hai 3 div in colonna non vi è modo
via css di settarli tutti della stessa altezza (o almeno, ai tempi, quando
mi era capitato, avevo dovuto usare javascript per calcolare l'altezza dei
3 div, prendere la più alta e forzare le altre 2)



Infatti ho solo 2 div, non ho usato un terzo div da conenitore principale 
perchè non mi serviva... e non penso che usandolo mi risolva il problema, 
perchè alla fine dovrei mettere width e height a 100% su entrambi.
Grazie ancora,
Cooper.
 

 Sostanzialmente il problema è questo.
se sto ben capendo, stai affrontando la logica in modo errato. Racchiudi i
2 div in un div "contenitore" con heigth=100%, poi al box2 darai position
fixed e bottom:0 e sei a posto ...
del tipo (va però testato con IE):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"
http://www.w3.org/TR/html4/strict.dtd
">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>test</title>
<style type="text/css">
#box1 {
    width: 100%;
  }
 #box2 {
    height: 50px;
    width: 100%;
	position:fixed;
	bottom:0;
  }
  #contenitore {
	height:100%;
	min-height: 100%;
}
 html, body {height:100%;border:0;margin:0;padding:0}
</style>
</head>
<body>
<div id="contenitore">
<div id="box1">1</div>
<div id="box2">2</div>
</div>
</body></html>
-- 
"qualcuno è andato per età
 qualcuno perchè già dottore
 e insegue una maturità, si è sposato, fa carriera
 ed è una morte un po' peggiore"
									    F.G.


Apportando i suggerimenti che mi hai dato, adesso il box inferiore è sempre 
posizionato in basso al variare della larghezza e della altezza della 
finestra.
Però l'altezza del box superiore (box1) non risente di alcun effetto; o 
meglio se metto un valore in pixel allora riesco a far variare l'altezza in 
base ai pixel dati, ma se metto l'altezza in percentuale non succede nulla.
Lo stesso discorso vale se non specifico l'altezza in box1 o se metto come 
altezza il valore auto.
Qualche suggerimento?
Grazie ancora.
Cooper.
 

 Però l'altezza del box superiore (box1) non risente di alcun effetto; 
infatti, non è stato toccato ... qual è il problema? Se è lo sfondo puoi
metterlo nel box principale ... il box si espanderà col contenuto.
Se vuoi qualcosa di più complesso, allora dipende dal contesto e dal
contenuto. Puoi studiare qua:
 
http://www.456bereastreet.com/archive/200609/css_frames_v2_fullheight/



Il problema è che il box superiore deve coprire tutta la finestra. Abbiamo 
risolto il problema del box inferiore, ma rimane quello del box superiore.
Il box superiore di fatto contiene una applet la cui altezza e larghezza 
sono impostate al 100%; il problema però è che mentre copre il 100% della 
finestra in larghezza; non copre il 100% della finestra (meno i 50 px del 
box inferiore) della finestra stessa, ma sembra impostare l'altezza al 
valore minimo dell'applet.
Grazie ancora,
Cooper.
 

 valore minimo dell'applet.
direi che il link che ti ho dato dovrebbe risolvere.
-- 
"E' l' ignoranza che crea l'intolleranza
 di gente cieca e senza coscienza"
									  S.S.S.


Controllando l'esempio e il css che ho, aggiungendo quello che mi hai 
suggerito prima, non vedo molte differenze :( sarà che mi sfugge qualcosa ma 
non riesco a capire cosa :(
 

 non riesco a capire cosa :(
Hai provato a mettere semplicemente height:100% al box1?



Esatto, ho provato anche in questo modo (fra l'altro è uno dei tentativi che 
avevo citato nell'elenco di qualche post fa).
La mia attenzione si era concentrata proprio sul box1 e su quell' height :(
 

 avevo citato nell'elenco di qualche post fa).
mah, se io nel mio esempio metto una heigth 100% nel box1, e dentro metto
una img con heigth=100%, a me ingrandisce correttamente il tutto.
-- 
"Ti sei salvato
 o sei entrato in banca pure tu?"
									    A.V.


Buh, riproverò domani allora facendo tutto ex-novo; magari forse in questo 
modo salta fuori ciò che mi sfugge ora.
Ti farò sapere.
Grazie ancora,
Cooper. 


Ho controllato tutto ed è in come indicato; non so perchè non va, cmq vista 
la situazione estrema, ho deciso di ricorrere ai frame un frameset del tipo: 
<frameset row="*. 50"> ... </frameset> mi risolve il problema senza grossi 
intoppi, i dati alle due pagine li passo tramite una querystring e via.
Avrei voluto evitare, ma non avendo altra alternativa valida, l'unica che 
rimane è questa che fra l'altro si adatta perfettamernte allo scopo ed è 
compatibile anche con i browser piu datati.
Grazie ancora per il tuo aiuto.
Cooper. 

 [...] ho deciso di ricorrere ai frame un frameset...
Ho seguito il thread perché mi sto trovando in una situazione simile.
Io ho risolto così, senza CSS né javascript (almeno di vede in 
maniera *simile* su IE 6, FF 2, Google Chrome):
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" 
      content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" text="#000000" leftmargin="0" topmargin="0" 
      marginwidth="0" marginheight="0">
<table width="100%" height="100%" 
      border="0" cellspacing="0" cellpadding="0">
  <tr> 
    <td height="100%" valign="top" bgcolor="lavender"> 
      uno
    </td>
  </tr>
  <tr> 
    <td height="50" valign="top" bgcolor="plum"> 
       due
    </td>
  </tr>
</table>
</body>
</html>
-- 
Saluti
Renato
 


Ho provato a seguire anche la strada della tabella, ma l'altezza in 100% non 
aiuta parecchio. Nel senso che i browser non la interpretano correttamente.
Poi nel caso specifico devo caricarvi una applet java le cui dimensioni in 
larghezza e altezza sono appunto del 100% e quindi è necessario che il 
riferimento sia alla finestra e non alla tabella.
Cmq al di la di tutto questo, il problema nasce dal fatto che dalla versione 
3.x di firefox l'attributo: resizable=no non è più supportato in window.open 
(chissà poi per quale motivo...).
Da un lato non ha senso lasciare la possibilità all'utente di attivarlo o no 
(e negarlo al programmatore) e dall'altro non ha senso lasciare una 
variabile booleana se poi può assumere un solo valore (lato programmatore).
Chi progetta i browser deve dare libertà di scelta allo sviluppatore, e non 
imporre le proprie filosofie; non altro per una questione di compatibilità 
verso il basso.
Qui a mio avviso mozilla a sbagliato di grosso, e do un punto a favore di 
internet explorer.
Ora sto riscrivendo il codice ricorrendo ai frames... ma se vedo che anche 
questa strada non va bene; per il servizio che intendevo fornire mi sa che 
farò prima a renderlo disponibile per internet explorer e inibirlo a coloro 
che usano firefox.
Dopotutto cos'altro si può fare? Piegarsi a un browser? Mai!
Lascerò nel peggiore delle ipotesi, che sia l'utente a decidere quale 
browser usare.
Cooper.
 

 inibirlo a coloro che usano firefox.
Allora sì che ti scriveranno in moltissimi, in termini tutt'altro 
che lusinghieri, come successe a me!  :-)
(Dovetti ricorrere a if document.all - if document.layers... ) :-/
-- 
Saluti
Renato
 


In effetti c'č il rischio, non avevo pensato... ok allora lascerň tutto come 
č... e aggiungerň una noticina su un riquadro elegante con scritto:
"Questa finestra č stata progettata per non essere ridimensionata, se riesci 
a ridimensionare questa questa finestra e quindi a leggere questo messaggio, 
significa che il browser che stai utilizzando contiene un bug; in tal caso 
ti invitiamo ad aggiornarlo con l'ultima versione disponibile, e nel caso in 
cui il problema persiste a contattare il produttore per ricevere assistenza 
tecnica su come risolvere il problema."
Almeno cosi, non dovrebbero esserci problemi... anzi si incentiva con la 
scusa, a non usare browser datati :)
Cooper.
 

 Ho controllato tutto ed è in come indicato
Questa pagina fa ciò che chiedi? (devi ovviamente mettere una immagine
esistente):
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"
http://www.w3.org/TR/html4/strict.dtd
">
<html lang="en">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<title>test</title>
<style type="text/css">
#box1 {
    	width: 100%;
	height:100%;
	border:0;margin:0;padding:0;
  }
 
 #box2 {
    height: 50px;
    width: 100%;
	position:fixed;
	bottom:0;
	border:0;margin:0;padding:0;
  }
  #contenitore {
	height:100%;
	min-height: 100%;
	border:0;margin:0;padding:0;
}
 html, body {height:100%;border:0;margin:0;padding:0}
</style>
</head>
<body>
<div id="contenitore">
<div id="box1"><img src="immagine.jpg" style="height:100%"/></div>
<div id="box2">2</div>
</div>
</body></html>
Se sì, allora è la applet che fa qualcosa di strano ... se no, allora non
ho capito un tubazzo :-/



Si funziona correttamente il ridimensionamento dell'immagine al 100% perň 
non si vede il box fisso. Nel senso che l'immagine prende tutto il 100% 
della finestra.
Per quanto riguarda l'applet, cercando su internet, ho preso atto che c'č un 
bug su height="100%" come attributo all'interno di <applet ... > </applet>.
Ho dato una lettura a questo articolo:
http://forums.java.net/jive/thread.jspa?threadID=57236&tstart=0
Morale? Mi devo rassegnare? :(
Cooper. 

 bug su height="100%" come attributo all'interno di <applet ... > </applet>.
beh, su questo non saprei che dire, mai usata in vita mia una applet in un
sito.
-- 
"Capivamo di essere tanti
 capivamo di essere forti,
 il problema era solamente
 come farlo capire ai morti."
									    C.L.


Si su IE7 e FF3. L'immagine copre il 100% della finestra, in basso appare un 
2 a sinistra, ma l'immagine copre anche il 2 compreso.
Posso provare a inviarti uno screen shot per darti l'idea di ciò che vedo, 
in tal caso mi dovresti dire come fare a fartelo pervenire.
Cooper. 

 in tal caso mi dovresti dire come fare a fartelo pervenire.
no, non ho mail per queste cose. Se puoi mettila in rete.
-- 
"e mai che mi sia venuto in mente
 di essere più ubriaco di voi
 di essere molto più ubriaco di voi"
									  F.D.A.


Ok proverň a caricare una pagina di prova nel sito e ti dirň l'url appena 
fatto.
Il punto č che il due non viene coperto, l'immagine appare come fosse di 
sfondo e il due č sopra l'immagine.
Proverň a mettere il padding-bottom; non ho provato questo.
Cooper.