Newsgroup: it.comp.lang.javascript
Titolo: Per dindirindina: è possibile che non si possa fare?

Fino ad oggi ho inserito questo piccolo script per far aprire le pagine con
una determinata dimensione.
--------------------------------
<script>
function nuovafinestra(str) {
        searchWin =
window.open(str,'nuovafinestra','scrollbars=no,resizable=no,width=200,height
=400,status=no,location=no,toolbar=no');
//        searchWin.refer = self;
}
</script>
---------------------------------
Ora ho la necessità di far si che le pagine si aprano con la dimensione
dell'immagine che vado a linkare + "x" di margine.
Ad esempio se l'immagine è 100*100 px, la pagina dovrà essere di 140*140 px;
se l'immagine è di 212*115 px, la pagina dovrà essere di 252*155 px. Insomma
tutto con 40 px di bordo rispetto alla dimensione dell'immagine che vado a
linkare. E tutto naturalmente centrato.
Io non ci riesco.
C'è qualche anima buona che mi dica come fare?
Ciao.
Asdoo

caricati l'immagine:
var i=new Image(); i.src="tuaimmagine.gif";
//verifichi le dimensioni e le passi alla pagina di apertura (i.height /
i.width)

 ha scritto nel messaggio
news:aqqenb$c571d$1...@ID-147253.news.dfncis.de...


Purtroppo non ho tempo per farti uno script completo...logica:
la tua function va bene, solo che devi passargli width= e height=
differenti, a seconda dell'immagine...ma che dimensioni ha l'immagine?
La tua function dovrà quindi prima calcolare l'immagine, poi aprire la
pagina con le dimensioni corrette.
Per sapere dimensioni di una immagine:
a) la carichi: var i=new Image(); i.src='tuaimmagine.gif';
b) vedi width e height: i.width / i.height
c) apri la pagina con le dimensioni sopra indicate (somma 40 se vuoi):
window.open(...."width="+(i.width+40)+",height="+(i.height+40)+"....")
Ad esser precisi la parte sopra non tiene conto del tempo che ci impiega
l'immagine a caricare...se la hai nella cache sarà quasi istantaneo,
altrimenti normalmente io gioco con la proprietà complete dell'immagine: se
true ha terminato di caricarla, altrimenti setTimeout(...); non so però la
compatibilità con altri browser e non so se serva.

 ha scritto nel messaggio
news:aqqh3i$ch44v$1...@ID-147253.news.dfncis.de...


> "javascript:nuovafinestra('nomeimmagine.jpg');"
Stessa cosa: usa str al posto di "tuaimmagine.gif" che ho messo nell'esempio
(senza virgolette)

 ha scritto nel messaggio
news:aqqkce$c25fs$1...@ID-147253.news.dfncis.de...


 +40)+,height
window.open(str,'nuovafinestra','scrollbars=no,resizable=no,width='+(i.width
+40)+',height='+i.height+40+',status=no,location=no,toolbar=no');

 ha scritto nel messaggio
news:aqqsom$ckg6a$1...@ID-147253.news.dfncis.de...


FERMI TUTTIIIIIIIIIIIII
cosě funziona:
<script>
function nuovafinestra(str) {
var i=new Image(); i.src=(str)
width='i.width'
height='i.height'
searchWin=window.open(str,'nuovafinestra','scrollbars=no,resizable=no,width=
'+(i.width+100)+',height='+(i.height+100)+',status=no,location=no,toolbar=no
');
//        searchWin.refer = self;
}
</script>
ancora 2 cose:
come faccio a modificare il colore di sfondo della finestra e come faccio a
dirgli di centrare l'immagine nella finestra.
Grazie a tutti.
Asdoo

Potrebbe essere un problema di tempi di caricamento dell'immagine.
L'esempio completo che ho fatto (vedi sotto) funziona; ho aggiunto anche
chiusura della window, se già aperta, come suggerito da Catarsi.
<HTML><head>
<script language='JavaScript'>
var i=new Image();i.src="";var searchWin="";
function carica_img(str) {
 if(searchWin!="") searchWin.close();
 if(String(str)!="undefined") i.src=str;
 while(!i.complete) {
  setTimeout("carica_img()",100);
  return;
 }
 nuovafinestra();
}
function nuovafinestra() {
searchWin=window.open(i.src,'nuovafinestra','scrollbars=no,resizable=no,widt
h='+(i.width+40)+',height='+(i.height+40)+',status=no,location=no,toolbar=no
');
}
</script>
</head><body>
<a onClick='JavaScript:carica_img("/new/images/prova.gif")'>!!</a>
</body>
</HTML>

per poter modificare qualcosa anziché aprire l'immagine apri una pagina e
gli passi come parametro l'immagine da visualizzare
In quella pagina puoi inserire l'immagine in una tabella e centrarla,
impostare il colore di sfondo etc

 ha scritto nel messaggio
news:aqqv80$bpah7$1...@ID-147253.news.dfncis.de...


Io terrei la stessa identica function per aprire la pagina (apri però una
pagina es. image.htm anziché direttamente la gif)
Passi il parametro (image.htm?tuaimmagine)
onLoad dell'altra pagina leggi il parametro
(String(document.location.search).substr(1))
e hai la tua immagine da visualizzare.
Nella pagina metti un <img name='pippo'> e assegni il valore (img.src='...')

 Io terrei la stessa identica function per aprire la pagina (apri perň una


La finestra andrebbe ridimensionata su onload
(solo dopo che l'immagine è caricata il browser sa quanto è grande...)
inoltre per fare un lavoro ben fatto
dovresti controllare se l'immagine sta nello schermo...
Ora farti tutto lo script è un po' lunghino,
prova se questa bozza funziona:
<script type="text/javascript">
<!--
function apri(figura)
 {
 azz = new Image;
 azz.src = figura;
 popup = window.open('','_blank','toolbar=0,location=0,directories=0,menuBar=0,scrollbars=0,resizable=0,left=0,top=0');
 popup.document.open();
 popup.document.writeln('<html>\n<head>\n<title>Immagine</'+'title>\n</'+'head>\n<body left'+'margin=0 margin'+'width=0');
 popup.document.writeln('topmar'+'gin=0 margin'+'height=0>\n<center><img src="'+figura+'" border=0 name=imageTest');
 popup.document.writeln('onLoad="window.resizeTo(document.imageTest.width+40,document.imageTest.height+50)">');
 popup.document.writeln('</'+'center>\n</'+'body>\n</'+'html>');
 popup.document.close()
 };
// -->
</script>
E poi, al momento di richiamare l'immagine:
<a href="javascript:apri('la_tua_immagine.jpg')">
cliccami</a><br>
Ora devi aggiungere il controllo sulla dimensione dello schermo,
ovvero devi prendere il minimo tra screen.height e document.imageTest.height ecc...
Per cambiare il colore di sfondo e gli altri parametri della finestra,
scrivi direttamente il codice nel body della popup.
MaRoK


'+(i.width+40)+',height='+(i.height+40)+',status=no,location=no,toolbar=no')
Poi usi i.height?
--
"Non ti fare mai beffe di un drago vivo, pazzo di un Bilbo!"
m.vignocchiCHIOCCIOLAtiscalinetPUNTOit
Medusa

collaborazione.
Questo è un newsgroup e in quanto tale è pubblico; per simili questioni, se
pensi ne valga la pena, occorre contattarmi in privato (non a questa e-mail
ma (togliendo _nospam) 
criosoftw...@tiscali.it
)

 ha scritto nel messaggio
news:b9aA9.21502$8E3.6...@twister2.libero.it...


 ha scritto nel messaggio
news:0faA9.750$744....@news1.tin.it...


 ha scritto nel messaggio
news:aqrb8b$cgort$1...@ID-147253.news.dfncis.de...


Lo ho scritto e verificato, quello che ti ho postato è il copia-incolla
delle 2 pagine html...
Non è che semplicemente, facendo copia-incolla dal newsgroup, alcune parti
ti vanno a capo?

 ha scritto nel messaggio
news:aqrdo2$ckgv2$1...@ID-147253.news.dfncis.de...


 vedo la pagina HTM con l'immagine dentro. Boh!
A me lo script di Cristiano funziona perfettamente,
anzi, devo proprio dire che usare una pagina d'appoggio
è una grande idea! :o)
Ora bisogna solo renderlo compatibile con Netscape,
ma su IE va che è una bellezza!
MaRoK

Strano, pensavo funzionasse anche con netscape; di script, alla fin fine,
vedo solo l'uso della collection images che dovrebbe essere ultrastandard;
idem per property visibility
Cos'è che non va con netscape? (qua al lavoro col proxy non mi funziona e
non posso verificare...)


La popup si apre ma non carica l'immagine,
su Netscape6.2.1 e Mozilla 1.2 si vede solo lo sfondo nero,
su Netscape4.61 nemmeno lo sfondo.
Su Opera non andava nemmeno come link
(lo visualizzava come testo)
Ho aggiunto href="#" dopo il tag a, ed ora lo vede come link.
In compenso non apre nulla.
MaRoK

niente, netscape non ne vuol sapere del proxy e autenticazione di window...
Forse è quel visibility che non setta a visible su onLoad dell'immagine?

 Forse è quel visibility che non setta a visible su onLoad dell'immagine?
Ho provato a cambiare hidden in visible,
l'unica differenza è che compare il simbolino di immagine mancate,
che prima non si vedeva.
Mi sembra evidente che Mozilla/Netscape/Opera non trovano l'immagine...
MaRoK