Newsgroup: it.comp.lang.javascript
Titolo: Esiste una soluzione più semplice e più pulita di questa?

Ciao a tutti,
sto riscrivendo del codice javascript, vorrei sapere se esiste una soluzione 
meno laboriosa, più semplice e piu pulita di quella che riporto in seguito.
Intanto nel file html ho questo codice:
                  <!-- BEGIN Inizio -->
                    <script type="text/javascript">
                      <!-- 
                        variabile1 = "stringa1";
                           ...
                        variabileN = "stringaN";
                      //-->
                    </script>
                    <script type="text/javascript" 
src="
http://www.miosito.it/javascript/codice.js
"></script>
                    <noscript>Errore: Javascript disabilitato o non 
supportato dal Browser.</noscript>
                  <!-- END Fine -->
Lo script dopo aver letto i valori di variabile1, variabile2 ... variabileN 
va a caricare la pagina codice.js.
In codice.js abbiamo la seguente riga (esemplificativa):
  document.write ('<iframe allowtransparency="no" frameborder="0" 
height="22" hspace="0" id="myid" marginheight="0" marginwidth="0" 
name="myname" scrolling="no" 
src="
http://www.miosito.it/miapagina.php?variabile1='+escape(variabile1)+'&variabile2='+escape(variabile2)+'&variabileN'+escape(variabileN)
" 
vspace="0" width="468"></iframe>');
Dove viene caricata la pagina: miapagina.php con i parametri passati tramite 
url per essere elaborata.
Ora escludendo l'ipotesi di mettere direttamente l'url della riga che 
richiama la pagina miapagina.php con i parametri nel codice javascript della 
pagina html, c'è qualche soluzione migliore per migliore il codice ottenendo 
lo stesso risultato in modo appunto più pulito,, semplice etc etc?
Grazie in anticipo per il vostro aiuto.
Cooper. 

 meno laboriosa, più semplice e piu pulita di quella che riporto in seguito.
Non sono sicuro di aver capito, ad ogni modo mi sembra una semplice
chiamata AJAX, o meglio AHAH. Se la indirizzi in un div puoi
scorporare meglio il codice e scrivere le istruzioni di stile in un
file separato. Inoltre puoi usare innerHTML invece di document.write
che talvolta crea non pochi problemi. Se vuoi una elegante soluzione
cross-browser usa jQuery che offre il metodo html() che permette di
inserire agevolmente contenuti in un div.

 ha scritto nel messaggio 
news:1abf4884-96c2-46f8...@v56g2000hsf.googlegroups.com...

Grazie per la tua risposta, posso chiederti di illustrarmi un esempio 
pratico? Ahime, io purtroppo di Ajax e Javascript non so molto perchè quando 
possibile cerco in ogni modo di evitarlo.
La soluzione che mi hai prospettato sembra interessante, ma non ho le idee 
chiare su come implementarla.
Grazie ancora per il tuo aiuto.
Cooper. 

 lo stesso risultato in modo appunto più pulito,, semplice etc etc?
Per rendere più elegante il tutto, puoi incapsulare l'intero processo
in un oggetto.
-- 
~ Il lavoro è quel lasso di tempo che intercorre tra una pausa caffè e
l'altra.


Ovvero?
Un esempio pratico da cui poter prendere spunto?
Grazie ancora
Cooper. 

 Cooper.
Ora non sono in grado di creare un esempio completo, però ti propongo
alcuni link, dopo aver studiato il contenuto delle pagine possiamo
creare un esempio completo insieme. Posso preparare qualcosa di
interessante solo durante il fine settimana.
Nel primo esempio è necessario osservare con attenzione il codice:
http://www.stainlessvision.com/lab/jquery-innerxhtml/
La guida specifica sul metodo html(val) con alcuni piccoli esempi:
http://docs.jquery.com/Attributes/html#val
Spiega, in forma semplificata, la manipolazione con jQuery
http://www.query7.com/manipulation-in-jquery/

 Grazie ancora
De nada.
-- 
~ Se potete leggere questo, la mia donna è caduta.
(Letta sul retro di una maglietta di un motociclista)


Credo di aver capito la logica seguita, non mi resta che sperimentare sulla 
pratica per aver conferma.
Solo una cosa mi lascia perplesso e cioè nel primo codice relativo a 
var_GET; forse ho dato per scontato non so, però ho ritenuto più pratico che 
l'impostazione dei valori sia effettuata dall'utente finale; direttamente 
lavorando sul codice, ovviamente dietro una piccola guida.
Cambierebbe molto rispetto al codice attuale?
Grazie ancora :)
Cooper. 

 ha scritto nel messaggio 
news:3ee10d15-6cc4-4b1a...@17g2000hsk.googlegroups.com...

Ho dato una lettura ai tre link, però temo che (fatta eccezione per l'html e 
derivati) che tutto il resto per me sia, non dico arabo ma quasi :)
Scherzi a parte, per comprendere fino in fondo quanto riportato li, dovrei 
approfondire ulteriormente, cosa che farò sicuramente per cultura personale 
anche perchè in futuro potrà sempre tornarmi utile, ma per il momento ho 
bisogno di risolvere questo problemuccio sigh.
Grazie mille per la tua disponibilità.
Cooper.
 

 Grazie ancora :)
De nada, ancora. :)
-- 
~ "When you have eliminated the impossible, whatever remains, however
improbable, must be the truth." (S.H.)


Provo a tirare un po' le somme, correggimi se sbaglio.
Nella pagina html, devo sostituire il codice di origine:
                  <!-- BEGIN Inizio -->
                    <script type="text/javascript">
                      <!-- 
                        variabile1 = "stringa1";
                           ...
                        variabileN = "stringaN";
                      //-->
                    </script>
                    <script type="text/javascript" 
src="
http://www.miosito.it/javascript/codice.js
"></script>
                    <noscript>Errore: Javascript disabilitato o non 
supportato dal Browser.</noscript>
                  <!-- END Fine -->
Con il codice:
                  <!-- BEGIN Inizio -->
                    <script type="text/javascript">
                      <!-- 
                          MyADV.keys["variabile1"] = "contenutoVariabile1";
                          MyADV.keys["variabile2"] = "contenutoVariabile2";
                            ...
                          MyADV.keys["variabileN"] = "contneutoVariabileN";
                      //-->
                    </script>
                    <script type="text/javascript" 
src="
http://www.miosito.it/javascript/codice.js
"></script>
                    <noscript>Errore: Javascript disabilitato o non 
supportato dal Browser.</noscript>
                  <!-- END Fine -->
Successivamente in codice.js devo sostituire la riga:
document.write ('<iframe allowtransparency="no" frameborder="0"  height="22" 
hspace="0" id="myid" marginheight="0" marginwidth="0" name="myname" 
scrolling="no" 
src="
http://www.miosito.it/miapagina.php?variabile1='+escape(variabile1)+'&variabile2='+escape(variabile2)+'&variabileN'+escape(variabileN)
" 
vspace="0" width="468"></iframe>');
Con il seguente blocco di codice:
MyADV  = {
uri : "
http://www.miosito.it/miapagina.php
",
keys : {}
};
MyADV.display = function(){
var buff = [], qs = "";
for (var key in this.keys)
buff[buff.length] = key+"="+escape(this.keys[key]);
if ( buff.length > 0 ){
qs = "?"+buff.join("&");
}
/* Su una sola riga */
document.write('<iframe allowtransparency="no" frameborder="0"height="22" 
hspace="0" id="myid" marginheight="0"
marginwidth="0" name="myname" scrolling="no" src="', this.uri+qs,'" 
vspace="0" width="468"></iframe>');
document.close();
}
Che andrà a generare il blocco <iframe>....</iframe>
Ho detto giusto?
Grazie ancora :)
Cooper.
 

 
Quindi, sulla pagina utente risultante, il codice sarà qualcosa tipo:
<script type="text/javascript"
src="
http://www.coopersite.com/adv.js
"></script>
<script type="text/javascript">
	MyADV.keys["variabile1"] = "contenutoVariabile1";
	MyADV.keys["variabile2"] = "contenutoVariabile2";
	...
	MyADV.keys["variabileN"] = "contneutoVariabileN";
</script>
E nell'HTML dove deve far vedere l'iframe:
<script type="text/javascript">MyADV.display()</script>
Se fosse, ad esempio, dentro un DIV, sarebbe:
<div class="my-box">
<script type="text/javascript">MyADV.display()</script>
</div>
-- 
~ "Quando ti rifiuti di imparare una lezione in un modo,
ti verrà ripresentata sotto un altro aspetto." (E.Caddy)