PDA

View Full Version : [javascript] generazione "al volo" di una pagina e problemi immagini


BountyKiller
25-10-2006, 11:56
buongiorno gente, ho preso in mano questo linguaggio per la prima volta circa una settimana fa (preciso che lo sviluppo web non mi ha mai eccitato particolarmente); penso di aver imparato più o meno tutto, c'è solo una cosa che non sono riuscito a fare ed è la seguente: ho una pagina web con delle thumbnail di fotografie; sotto ogni foto ho messo un button "ingrandisci" e ho bindato l'evento onclick con una funzione javascript che fa apparire una finestra, imposta un colore di sfondo e mostra l'immagine; il problema è che non riesco a vedere l'immagine. inoltre (succede solo con firefox) quando apro la finestra la barra di caricamento resta a metà ( come se non avesse completato il caricamento); la funzione è fatta più o meno così

function ShowPics
{
var wnd=open(..non ricordo i parametri..);
var.document.bgColor="black";
var.document.write("<img src="(immagine) width=xxx height=yyy>");

}

sto sbagliando qualcosa? so che il document ha l'attributo image.
C'entra qualcosa?
grazie

BountyKiller
26-10-2006, 08:58
nemmeno una rispostina?
dai gente che javascript è semplicissimo!

andbin
26-10-2006, 09:29
buongiorno gente, ho preso in mano questo linguaggio per la prima volta circa una settimana fa (preciso che lo sviluppo web non mi ha mai eccitato particolarmente); penso di aver imparato più o meno tutto, c'è solo una cosa che non sono riuscito a fare ed è la seguente: ho una pagina web con delle thumbnail di fotografie; sotto ogni foto ho messo un button "ingrandisci" e ho bindato l'evento onclick con una funzione javascript che fa apparire una finestra, imposta un colore di sfondo e mostra l'immagine; il problema è che non riesco a vedere l'immagine. inoltre (succede solo con firefox) quando apro la finestra la barra di caricamento resta a metà ( come se non avesse completato il caricamento)Quando vuoi scrivere nel document di una nuova finestra aperta, devi aprire e poi chiudere lo stream. Ecco un esempio.


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Prova</title>
<script type="text/javascript">
<!--
function apri_finestra ()
{
var wnd = window.open ("", "_blank", "menubar=yes,toolbar=yes,scrollbars=yes,status=yes,resizable=yes,width=300,height=300");

wnd.document.open ();
wnd.document.write ("<html><body><h1>CIAO</h1></body></html>");
wnd.document.close ();
}
//-->
</script>
</head>
<body>

<a href="#" onclick="apri_finestra()">Apri finestra</a>

</body>
</html>

BountyKiller
26-10-2006, 10:00
:doh:
faccio la close ma non faccio la open :muro: :muro:
sono un coglione :D

provo e ti faccio sapere ma è sicuramente così.
grazie! :)

BountyKiller
27-10-2006, 08:40
si, il problema era proprio quello.
avrei un'altra domanda: ho creato un array che contiene i path delle fotografie e i loro nomi: vorrei fare in modo che la finestra generata al volo possa navigare tra le fotografie mostrandone una alla volta ( la finestra avrà quindi due bottoni, avanti e indietro)...ora io farei una cosa simile:

var PicsArray = new initArray("immagine1.jpg","immagine2.jpg" eccetera)

la funzione farà quindi tra le altre cose

wnd.document.write("<img src='+PicsArray[1]+' width eccetera");

ma non funziona (ho provato anche con " al posto di '), secondo me il problema sono le virgolette...suggerimenti?
ciao!a

andbin
27-10-2006, 09:11
si, il problema era proprio quello.
avrei un'altra domanda: ho creato un array che contiene i path delle fotografie e i loro nomi: vorrei fare in modo che la finestra generata al volo possa navigare tra le fotografie mostrandone una alla volta ( la finestra avrà quindi due bottoni, avanti e indietro)...ora io farei una cosa simile:

var PicsArray = new initArray("immagine1.jpg","immagine2.jpg" eccetera)

la funzione farà quindi tra le altre cose

wnd.document.write("<img src='+PicsArray[1]+' width eccetera");

ma non funziona (ho provato anche con " al posto di '), secondo me il problema sono le virgolette...suggerimenti?
ciao!aCiao, rieccomi. Una volta che la finestra è stata caricata (intendo anche le scritture con wnd.document.write), non puoi fare altre scritture del genere ma devi operare con il modello ad oggetti della pagina.

Immagino che avrai un tag <img> per la immagine e 2 tag <input> per i pulsanti avanti/indietro. Un qualcosa del tipo:

<img id="visualizzatore" src="...la immagine di default...">

...

<input type="button" value="Indietro" onclick="img_indietro()">
<input type="button" value="Avanti" onclick="img_avanti()">

Nelle due funzioni Javascript dovrai recuperare l'oggetto della immagine dal suo 'id'.

var imgobj = document.getElementById("visualizzatore");

e poi impostare l'attributo src (che è una stringa con l'url):

imgobj.src = ......;

Nota che ho usato getElementById che funziona sui browser più recenti ma non con IE4 (dovresti usare anche document.all).

BountyKiller
27-10-2006, 10:17
si avevo pensato anch'io a questa soluzione ma mi ero messo in testa di risolvere cablando le variabili nell'html... cosa che quindi deducio essere impossibile..
provo.
Grazie mille :) :)