Newsgroup: it.comp.lang.javascript
Titolo: Passare variabile con querystring

SAlve a tutti
Ho una variabile Javascript che si chiama "variabiledapassare"
Come faccio a passarla tramite querystring? Non so come scrivere la stringa.
Se la variabile fosse in ASP scriverei:
www.paginadestinazione.asp?variabile=<%=variabiledapassare%>
Come faccio in Javascript? Grazie mille
Fabio

Fabio ha scritto:

nello stesso identico modo, no?
"paginadestinazionea.asp?variabile"+variabiledapassare
risolto?
Saluti


Grazie per aver risposto. Purtroppo non ho risolto. La mia stringa č:
<a href="frame_ricercamusica_responso.asp?parolachiave='+variabile">
Ma non funziona affatto: mi passa il valore letterale "+variabile", non il
valore della variabile variabile. Sbaglio qualche apice?
Fabio

 Fabio
no, così non funziona
devi pensare che il codice javascript viene eseguito quando la pagina
è stata caricata, non prima con avviene con ASP.
quindi per avere il risultato che desideri devi fare una cosa diversa.
Se m dici qual'è il tuo problema un po' più in generale, posso
aiutarti a risolverlo

 <a href="frame_ricercamusica_responso.asp?parolachiave='+variabile">
<a href="frame_ricercamusica_responso.asp"
onclick="location.href='frame_ricercamusica_respons
o.asp?parolachiave='+variabile; return false">link</a>
La variabile dev'essere globale, ovviamente.
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 o.asp?parolachiave='+variabile; return false">link</a>
Perfetto, questo mi funziona benissimo. L'unica cosa, vorrei che il link si
aprisse in un frame denominato "centro" che però appartiene a un'altra
finestra in quel momento aperta. Cosa devo fare? Grazie
Fabio

Avrei anche un'altra richiesta: come posso creare l'url di un immagine
usando una variabile JScript?
Mi spiego:
in ASP io scrivo:
<img src="Immagini/<%=variabile%>.jpg">
Come dovrei scriverlo se la variabile "variabile" è invece una variabile
Javascript?
Fabio

 Javascript?
Dipende quando questa variabile viene avvalorata, e quando devi impostarne
l'src.
Puoi usare un document.write, oppure un riferimento all'oggetto per poi
settare l'attributo src.
Dipende tutto dal contesto.
-- 
~ "La realtà è ciò che, quando smetti di crederle, non va via."
(Philip K. Dick)

 finestra in quel momento aperta. Cosa devo fare? Grazie
L'istruzione js è:
	wn.centro.location.href="pagina.asp?param="+valore;
Dove:
wn è la variabile che contiene il riferimento della finestra che ti
interessa, e "centro" è il name del frame (posto che non sia dentro altri
frame di tale finestra).
Come ottenere il riferimento della finestra che contiene frame, dipende
essenzialmente da come questa è stata aperta. Ad esempio:
	var wn = window.open(..etc..);
-- 
~  "Nei  film americani, qualsiasi problema che  venga considerato
 sufficientemente catastrofico, puo' essere risolto facendo esplodere
uno o piu' ordigni nucleari" (ZER0  & Cosimo)

č esattamente il contario:
Io ho una finestra principale divisa in 3 frames.
In piů ho una popup: in questa popup compare il link cui mi riferivo per
mandare un valore al frame centrale della prima finestra. E' chiaro ora?
Fammi sapere, grazie :-)
Fabio

 Fammi sapere, grazie :-)
Il tal caso "wn" č window.opener:
	var wn = window.opener;
e poi puoi riutilizzare l'istruzione che ti ho dato. Oppure, tutto su una
riga:
window.opener.centro.location.href = ..etc..
-- 
~ "Io ho fatto questo, dice la mia memoria
Io non posso aver fatto questo, dice il mio orgoglio.
Alla fine, č la memoria ad arrendersi." (Nietzsche)

Scusa se insisto, ma sono a digiuno di JScript.
Il mio span č questo (non ho inserito altri script nella pagina):
<span class="rosso"
onclick="window.opener.centro.location.href='
frame_ricercamusica_responso.as
p?parolachiave='+variabile; return false">Clicca</span>
Purtroppo mi esce il seguente errore:
"window.opener.centro č nullo o non č un oggetto"
Grazie per la pazienza
Fabio

 "window.opener.centro è nullo o non è un oggetto"
Pardon. Dimenticavo che hai tre frame (non iframe), ergo la popup verrà
aperta sicuramente da uno di questi. Quindi, devi aggiungere "parent":
window.opener.parent.centro.location.href = ..etc..
-- 
~ Il futuro è nelle nostre mani. Purtroppo.


La variabile ha già un valore, infatti viene richiamata da altre funzioni
nella stessa pagina. In questa pagina io vorrei inserire una immagine il cui
nome del file (escludendo l'estensione) coincide proprio col nome di tale
variabile:
VARIABILEJSCRIPT.gif
Come fare?
Fabio

 variabile:
Scusa, ma non ti seguo. Sarà l'ora tarda, ma non riesco a seguire il tuo
ragionamento.
a) Quando viene avvalorata tale variabile.
b) Come, quando e da chi (da quale funzione, in che momento della vita della
pagina)
c) In che momento temporale l'immagine deve assumerne il valore
d) Perché tutto ciò (ovvero, perché non farlo via ASP ad esempio)
-- 
~ La realtà è un'illusione causata dall'assenza di alcool.

> window.opener.parent.centro.location.href = ..etc..
Stesso errore, purtroppo :-(
Fabio

> d) Perché tutto ciò (ovvero, perché non farlo via ASP ad esempio)
Perché non so come "trasformare" una variabile javascript in ASP. Ti
assicuro che nel punto della pagina in cui voglio mettere l'immagine la
variabile Javascripot ha già il suo valore, è certo. Mi serve solo la
stringa per l'inserimento dell'immagine
Fabio

 Stesso errore, purtroppo :-(
Evidentemente allora fai riferimento alla finestra sbagliata.
La struttura che ti ho dato presupponeva che:
- la pagina principale avesse "n" frame
- Il codice fosse eseguito da una popup aperta da uno degli "n" frame della
pagina
- non vi fossero frame annidati
- e ovviamente uno degli "n" frame avesse come name "centro"
Se il contesto non è questo, correggilo. Alternativamente, metti online la
pagina in questione.
O, meglio ancora, cerca di ricavare da solo il percorso corretto, dato che
tu hai tutti gli strumenti in mano per farlo (il contesto lo conosci meglio
di tutti, e le istruzioni js per operare ti sono state fornite):
- l'istruzione da eseguire è wn.NomeFrame.location.href
- "wn" DEVE essere il riferimento alla finestra che ha un FRAME con name
pari a "NomeFrame"
- opener, si riferisce alla finestra/frame che ha aperto la finestra
corrente
- parent, si riferisce alla finestra che contiene quella corrente (che
contiene quindi il frame)
- top, si rifesce alla finestra gerarchicamente più in "alto" (nel caso in
cui non sono presenti frame annidati, top e parent coincidono. Quando non ci
sono frame, top e parent coincidono con window, la finestra corrente)
L'unica informazione che ti mancava era top, ma se il contesto era corretto
non ce n'era bisogno. Adesso hai tutte le informazioni che ti servono per
risolvere il problema di "percorso".
-- 
~ Se potete leggere questo, la mia donna è caduta.
(Letta sul retro di una maglietta di un motociclista)

 Mi serve solo la stringa per l'inserimento dell'immagine
Non è una questione di stringa. Javascript non lavora come un linguaggio
server side. Lo scopo di un linguaggio server side, come ASP, è fornire una
risposta ad una chiamata HTTP. Sovente tale risposta è semplicemente del
testo, ergo si tratta di "scrivere stringhe". In JS no, essendo lato client
opera in modo del tutto differente.
-- 
~ Ci sono tre modi di fare le cose.
Giuste, sbagliate e come dico io. (Robert De Niro in "Casinò")

Cerco di essere più preciso
Prima finestra: 3 frames:
  "sinistro"
  "centro"
  "destro"
Cliccando su un bottone del frame sinistro si apre una popup di nome
  "orra"
In questa popup c'è un link che dovrebbe farmi aprire una pagina nel frame
"centro" della prima
Spero sia stato chiaro :-) Grazie
Fabio

Ti faccio solo una domanda che dovrebbe forse semplificare il tutto:
Nella mia pagina c'č una variabile Javascript denominata
"immaginevariabile".
Nel momento in cui mi serve ricavare l'immagine "immaginevariabile.gif" sono
certo che quella variabile č stata caricata del suo valore. Se per esempio
il valore caricato č farfalla, mi serve che si apra l'immagine
"farfalla.gif".
Se quella fosse una variabile ASP io scriverei
<img src="<%=immaginevariabile%>.gif">
Come faccio a trasforamre la variabile Javscript in modo che sia malleabile
in questo modo con la suddetta stringa?
Grazie mille
Fabio

 Grazie
Prego
-- 
~ "Io non vorrei subire un'ingiustizia nè commetterla, ma se
dovessi scegliere, preferirei subirla."
(Platone - "Gorgia")

 in questo modo con la suddetta stringa?
Ti ripeto quanto ti ho giò scritto:
"Dipende quando questa variabile viene avvalorata, e quando devi impostarne
l'src.
Puoi usare un document.write, oppure un riferimento all'oggetto per poi
settare l'attributo src.
Dipende tutto dal contesto."
E sottolineo "dipende tutto dal contesto".
-- 
~ Always remember you're unique, just like everyone else.

Ti ho inviato via mail il file della mia pagina. Per favore, puoi dargli
un'occhiata? Grazie
Fabio

 un'occhiata? Grazie
Premetto che solitamente non si dovrebbe passare in mail, per questo genere
di cose. Comunque sia, con il file che mi hai mandato posso dirti come
impostare l'src dell'immagine, in quanto il contesto di quella pagina è
chiaro.
Ma non posso esserti d'aiuto per quanto riguarda il il problema di frameset;
per quello o pubblichi da qualche parte TUTTE le pagine incriminate, oppure
devi risolvertelo da solo. Da quella pagina e basta non posso ricavare tutta
la struttura dei frameset, ed è quello il nocciolo del problema.
Ti ripeto, hai tutte le informazioni che ti necessitano per risolvere da te
la questione. Se vuoi una mano, metti online le pagine incriminate, in modo
da replicare l'errore. Non mandarmele via email.
Tornando al discorso dell'immagine. La parte incriminata è questa:
    <t:MEDIA id="oMedia" style="position: absolute" src="radiokisskiss.asx"
begin="indefinite" timeAction="visibility" onend="oMedia.beginElement();"
ontrackchange="updateFields();"/>
<img src="Immagini/'+oMedia.playList.activeTrack.title;+'">
Dunque. Non è chiaro che valore assume la proprietà activeTrack allo startup
della pagina; e questa cosa me la devi dire te. Ma puoi tranquillamente
impostare l'immagine al cambio della traccia. Avresti quindi qualcosa come:
	<img id="image-track" src="Immagini/blank.gif" />
nell'HTML, e dovresti poi modificare la funzione js "updateFields" nel
seguente modo:
function updateFields(){
	var trackTitle = oMedia.playList.activeTrack.title;
	oTitle.innerText = "Playing: "+trackTitle;
 
	document.getElementById("image-track").src = "Immagini/"+trackTitle+".gif";
}
Ovviamente se l'estensione non è gif ma jpg cambiala di conseguenza.
La parte di codice che ti ho aggiunto io è crossbrowser, il resto l'ho
lasciato com'è, nonostante sia IE only. Ma credo che non ti interessi, da
quanto ho potuto vedere, la compatibilità con altri browser.
-- 
~ 

Grazie mille, questo script funziona alla grande.
Ora dovremmo risolvere il fatto dei frames: come vogliamo organizzarci?
Cerco di essere più preciso:
la popup che si apre in automatico attraverso uno script del frame
"sinistro" della finestra principale è in realtà costituita da due frames:
"alto" e "basso". La pagina che ti ho allegato nella precednete mail sarebbe
nil frames "basso". Io vorrei che il link che ti avevo indicato puntasse al
frame "centro" della prima finestra aperta. Grazie
Fabio

 "sinistro" della finestra principale è in realtà costituita da due frames:
Questa è la differenza di cui ti parlavo in un altro POST. Non ne avevi
parlato prima, ed è per questo motivo che la riga che ti ho dato
inizialmente non ti funzionava.
Fai qualche prova, e poi fammi sapere.
-- 
~ "Non ci si uccide per amore, basta aspettare."
"Allora non mi uccido per amore, mi uccido per impazienza."
(A.O. e M.T.)

Premesso che a Javascript sto a zero, ho comunque riprovato con:
window.opener.parent.centro.location.href
ma senza esito. Non ho le basi per trovare la soluzione, purtroppo.
Fabio

 ma senza esito. Non ho le basi per trovare la soluzione, purtroppo.
scusatemi, mi permetto di intromettermi anche senza aver seguito cosa vuoi
fare:
a) hai una popup, quindi con opener siamo sicuri (sperem...)
b) con top "passi" al contenitore di TUTTI i frame
 quindi opener.top
da qua il poi non fai altro che seguire il flusso...
è un frame "pippo" con dentro "pluto" con dentro "paperino"?
 opener.top.frames['pippo'].frames['pluto'].frames['paperino'] etc etc
-- 
"Ho smesso di fumare.
 Vivrò una settimana di più.
 E in quella settimana pioverà a dirotto"
									    W.A.

Quindi considerando la mia particolare situazione, e cioè:
la popup che si apre in automatico attraverso uno script del frame
"sinistro" della finestra principale è in realtà costituita da due frames:
"alto" e "basso". La pagina che ti ho allegato nella precednete mail sarebbe
nil frames "basso". Io vorrei che il link che ti avevo indicato puntasse al
frame "centro" della prima finestra
dovrei scrivere:
onclick="open.top.frames['centro']('paginadaaprire.asp')"
?
Grazie
Fabio



:-O cos'è "open"? opener?
e quelle parentesi tonde da dove saltano fuori?
 opener.top.frames['centro'].location.href='pagina.asp';
-- 
"La realtà è un'illusione causata dall'assenza di alcool."
									      A.

Ma top non è il contenitore di tutti i frames: è il nome del frame superiore
della popup.
Ricapitolo:
finestra principale divisa in 3 frames:
sinistro   centro     destro
Il frame sinistro apre la popup, divisa in due frames:
            alto
          basso
Fabio

             alto
:-O
quale delle due?


 :-O
Te la ricordi questa?
<
http://groups.google.com/group/it.comp.lang.javascript/browse_thread/th
read/258c6acff32fff60/747c9ae4bfbd0057?#747c9ae4bfbd0057>
Il mio post non c'č, ma me lo quota Zero, per fortuna =:-D
-- 
mailto: y = i
----------------------------------------
Vivo nel terrore di non essere frainteso 
(Oscar Wilde)

 read/258c6acff32fff60/747c9ae4bfbd0057?#747c9ae4bfbd0057>
ROTFL !
-- 
"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.

 Ricapitolo:
Annaspo:
parent.opener.frames['centro'].location.href='pagina.asp'; 
Anche volendoti dare la pappa scodellata, credimi, è piuttosto difficile
aiutarti.



Mi rendo conto, ma giusto per essere onesti usando la stringa:
onclick="parent.opener.frames['centro'].location.href='pagina.asp'"
ottengo sempre l'errore: "parent opener centro č nullo o non č un oggetto"
Fabio


Il frame sinistro della prima finestra apre una nuova finestra chiamata
"popup", che è divisa nel frame "alto" e nel frame "basso"
Fabio

 ottengo sempre l'errore: "parent opener centro è nullo o non è un oggetto"
 
E' possibile tu non abbia uno spazio web dove collocare le pagine? Se,
come ti è già stato suggerito, le pubblichi provvisoriamente da qualche
parte (togliendo naturalmente *tutto il testo* che non vuoi mostrare) e
lasci inalterati:
- il frameset del paginone (quello che contiene il frame "centro")
- le pagine in esso contenute
- il link che apre la popup
- il frameset della popup
- le pagine in essa contenute
- il link che NON TI FUNZIONA
in cinque minuti son finiti i problemi.
In alternativa studiati con calma le risposte di Zer0, perché ti ha dato
_tutte_ le informazioni necessarie per capire come funzionano le
"parentele" tra finestre. Ripeto: tutte.
Credo che andando oltre rimarrebbe solo la classica fetta di culo in
pinzimonio. Non mi viene in mente altro :)


In attesa che riesca a metterle on line (le sto provando in locale, su IIS),
volevo chiederti una cosa:
Il problema sarebbe risolto se io usassi il seguente codice integrando ASP
(l'ho già detto, anche se non ancora a te):
<a target="centro" href="paginadamostrare?elemento<%=var%>">...</a>
Ora, premesso che "var" è una variabile Javascript e che quindi il suddetto
codice non può essere utilizzato, esiste un metodo di trasformare la
variabile "var" in modo che possa richiamarla con la suddetta stringa?
Qualcosa del tipo:
<a target="centro" href="paginadamostrare?elemento"+=var+"">
?
Grazie mille
Fabio

 variabile "var" in modo che possa richiamarla con la suddetta stringa?
Te lo dico francamente: ho la sensazione che tu stia impelagando in
qualcosa di assolutamente astruso. Comunque sia -- a condizione che link
appartenga ad una pagina inclusa nello stesso frameset di "centro" -- la
risposta č sě:
<a href="#"
onclick="top.centro.location.href='paginadamostrare?elementoe='+var;
return false">link</a>



No, il link non appartiene allo stesso frameset, ma a un'altra finestra (la
famosa "popup" divisa nel frame "alto" e nel frame "basso"; piů precisamente
il link si trova nel frame "basso"). Quindi cosa suggerisci?
Fabio

 Quindi cosa suggerisci?
Quello che ho già suggerito: di metterla online.



Si capisce dov'è la magagna. Ma lo ammetto, dopo tutto il tempo speso vorrei
almeno vedere un minimo di azione propositiva da parte dell'OP...
-- 
~ Neanche il futuro e' piu' quello di una volta.

 almeno vedere un minimo di azione propositiva da parte dell'OP...
Sto cercando di pubblicarlo on line
Vi farò sapere appena ci riesco
Fabio

Ho pubblicato la struttura su 
http://webaim.interfree.it/prova/index.asp
Tieni conto che la pagina nel frame centrale non viene vista come ASP in
quanto questo server non supporta le ASP. Però, vedrai benissimo che il link
cui ti accennavo (quello nella popup) non funziona è mi dà l'errore:
"Parent.frames.... è nullo o non è un oggetto". Fammi sapere, e grazie :-)

 Ho pubblicato la struttura su 
http://webaim.interfree.it/prova/index.asp
parent.opener.parent.frames['centro'].location.href=
Sul resto non mi pronuncio :-D


> parent.opener.parent.frames['centro'].location.href=
Mi spiace, ma purtroppo non funziona assolutamente. Stesso errore di prima
("parent.opener.parent è nullo o non è un oggetto")
La struttura ora l'ho pubblicata on line, come da voi richiesto. Se siete in
grado, fatemi sapere. Grazie
Vi ripeto il link: 
http://webaim.interfree.it/prova/index.asp
Fabio

 ("parent.opener.parent è nullo o non è un oggetto")
Mi sembra strano:
- il frame della popup è racchiuso nella genitrice (parent)
- la parent fa riferimento a colei che l'ha aperta (parent.opener)
- colei (colui, il frame sx) che l'ha aperta, a sua volta è racchiusa nella
  genitrice (parent.opener.parent)
- quest'ultima è costituita da un frameset (parent.opener.parent.frames)
- il frameset contiene il frame "centro" (parent.opener.parent.frames['centro'])
Non so, forse mi sfugge qualcosa, aspettiamo gli altri.



Ok.
Fabio

parent.opener.top.frames['centro'] ?


Un plauso a Pianoska che ha risolto la cosa. Grazie.
Fabio

Fabio ho solo preso l'ultima risposta prima della mia (non ricordo di
chi.. ndr) e ho trovato l'errore!
Il contenitore dei frame si indica con top e non con parent...
ci sarebbe arrivato chiunque avesse letto il topic!
Piuttosto complimenti a chi ti ha indicato la strada, non a me che l'ho
percorsa!
Ciao

 ha scritto nel messaggio
news:1166449053.7...@n67g2000cwd.googlegroups.com...

Quale script dovrei usare se volessi chiudere con un click la popup di cui
abbiamo parlato? Grazie
Fabio

con un click su un pulsante nell popup?
<input type="button" onClick="window.close()" /> mi sembra..
ma con una ricerca in google sono sicuro troverai la risposta..
prova a cercare : "chiudere finestra javascript"
;)

 ha scritto nel messaggio
news:1166548158.8...@73g2000cwn.googlegroups.com...

Faccio riferimento alla popup che ho pubblicato on line: usando il
window.close() la popup non mi viene chiusa. Come mai?
Fabio

 window.close() la popup non mi viene chiusa. Come mai?
ok. ma il pulsante dov'è?
nella "madre" o nel popup?
nel caso il pulsante sia sul popup, allora decisamente window.close();
nel caso il pulsante sia sulla madre, beh nome_figlia.close();

nel caso il pulsante sia sulla madre, beh nome_figlia.close();
No, il pulsante è nella popup, precisamente nel frame basso della popup.
Ho scritto <a href="javascript:window.close()">Clicca qui per chiudere</a>
ma la popup non viene chiusa
Fabio

Fabio ha scritto:

prova con top.close()

>prova con top.close()
grazie
Fabio