Precedente :: Successivo |
Autore |
Messaggio |
Silent Runner Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17 Messaggi: 24078 Residenza: Pianeta Terra
|
Inviato: 19 Ott 2008 12:13 Oggetto: * Javascript che apre le finestre come gli pare... |
|
|
Salve, ho trovato questo javascript che però fa un po' i capricci:
Dovrebbe aprire delle finestre centrate sullo schermo e questo lo fa... però dovrebbe anche dare misure precise alla pagina che apre, cosa non sempre vera. Si comporta in modo strano, alle volte rispetta le misure impostate altre volte no.
Ho provato con Firefox e con Explorer. Con Explorer rispetta quantomeno il no,rezize il no,menubar ecc. ma anche lì le misure sono fisse.
Nota: nel riquadro qui sotto ho mandato a capo dopo "status=no," per evitare di dover scrollare la pagina. Nel codice originale lo script è tutto di seguito.
Codice: | <script type="text/javascript">
function popup(URL,w,h)
{
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
objWin = window.open(URL,'nomeacaso','toolbar=no,location=no,status=no,
top='+TopPosition+',left='+LeftPosition+',menubar=no,scrollbars=auto,resizable=no,width='+w+',height='+h);
objWin.focus();
}
</script> |
e questo è l'url...
Codice: | <a href="download/pagina.htm" onclick="popup('download/pagina.htm',320,110) ;return false;">
<B>1 Pagina da aprire in popup </B> </a> |
ovviamente io ho messo più di un link diretti a pagine diverse cambiando nel codice dei vari link la dimensione della pagina.
Alle volte si apre con misure giuste, altre volte si apre con misure tutte uguali, indipendentemente dalle misure impostate.
Una domanda e poi chiudo:
...ma in quella parte di codice nello script che dice: "Win = window.open(URL,'nomeacaso'," ha un senso quel "nomeacaso"? ha un effetto preciso, una funzione?
Grazie in anticipo. |
|
Top |
|
 |
Silent Runner Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17 Messaggi: 24078 Residenza: Pianeta Terra
|
Inviato: 19 Ott 2008 16:27 Oggetto: |
|
|
Ho poi scoperto questo: se chiudo manualmente le finestre che si aprono, le finestre successive prendono effettivamente le dimensioni segnate nello script.
Certamente è più comodo cliccare direttamente sul link per cambiare pagina e questo restituisce però una pagina con la dimensione dell'ultima pagina aperta. C'è modo di eliminare questo effetto? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 19 Ott 2008 20:29 Oggetto: |
|
|
Ciao Silent,
a guardare lo script non mi pare che abbia nulla di strano quindi non è che alcune pagine che apri nel popup abbiano del codice che altera la dimesione della finestra? |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11807 Residenza: Tokelau
|
Inviato: 20 Ott 2008 11:25 Oggetto: Re: Javascript che apre le finestre come gli pare... |
|
|
Il problema è proprio quel 'nomeacaso'. Se la finestra identificata da 'nomeacaso' esiste già, non viene ricreata e quindi non prende le dimensioni richieste. Invece di 'nomeacaso' metti un nome diverso per ogni finestra di dimensioni/posizione diversa, tipo
Codice: | 'win-top='+TopPosition+'-left='+LeftPosition+'-width='+w+'-height='+h |
 |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 20 Ott 2008 17:13 Oggetto: |
|
|
Vero!
Non ho fatto caso al nome della finestra perchè pensavo che il problema fosse legato strettamente alle dimensioni! |
|
Top |
|
 |
Silent Runner Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17 Messaggi: 24078 Residenza: Pianeta Terra
|
Inviato: 23 Ott 2008 09:24 Oggetto: Re: Javascript che apre le finestre come gli pare... |
|
|
Grazie, SverX! [size=9]
Perdonatemi se faccio domande idiote ma non sono assolutamente esperto di programmazione in javascritp: più che altro li applico ma non so come intervenire in profondità all'interno del codice.
Tu mi ha fatto osservare una cosa che adesso vorrei comprendere meglio: Quel "nomeacaso" che diavolo è? Nel codice delle pagine che apro cliccando sul link della pagina principale non c'è nessun termine del genere... La pagina che vado ad aprire contiene solo un flash al quale è collegato un file mp3 che parte in automatico. Non c'è nient'altro che quello. Ho usato questo sistema per aprire pagine in popup evitando i blocchi anti popup che alcuni inseriscono nei loro browser.
Torniamo a quanto mi hai detto:
Il "nomeacaso" esiste solo nello script presente nella pagina principale.
Tu mi hai scritto: Codice: | 'win-top='+TopPosition+'-left='+LeftPosition+'-width='+w+'-height='+h | ma non comprendo. Questa parte del codice non contiene nomi ma sono indicazioni e coordinate.. o sbaglio?
Dove e come cambio il nome che tu mi dici di sostituire per ogni pagina?
Le pagine che apro (in tutto 5) hanno tutte nomi diversi sia nel nomefile che nel tag "title" anche se non credo intendessi dire questo...
il link dal quale poi apro la pagina contiene solo un url (che ho indicato così "download/pagina.htm")E fra i tag "B" c'è solo il testo del link.
Codice: | <a href="download/pagina.htm" onclick="popup('download/pagina.htm',320,110) ;return false;">
<B>1 Pagina da aprire in popup </B> </a> |
Che cos'è che non capisco?
Scommetto che è semplice.
Supergrazie a tutti. |
|
Top |
|
 |
SverX Supervisor Macchinisti


Registrato: 25/03/02 12:16 Messaggi: 11807 Residenza: Tokelau
|
Inviato: 23 Ott 2008 10:44 Oggetto: Re: Javascript che apre le finestre come gli pare... |
|
|
Silent Runner ha scritto: | Quel "nomeacaso" che diavolo è? |
il 'nome della finestra' Se il browser 'vede' che una finestra con quel nome esiste già, allora non la ricrea, per quello cercavo di fare in modo che esistesse un nome diverso per ogni finestra diversa, facendo così:
Codice: | objWin = window.open (URL,
'win-top='+TopPosition+'-left='+LeftPosition+'-width='+w+'-height='+h',
'toolbar=no,location=no,status=no,top='+TopPosition+',left='+LeftPosition+',menubar=no,scrollbars=auto,resizable=no,width='+w+',height='+h); |
così la finestra che si apre alla posizione 100,100 e grande 500,300 si chiamerà
Codice: | win-top=100-left=100-width=500-height=300 |
se non funzionasse allora è perchè il carattere = non è accettato nei nomi delle finestre (anche se non penso...) e allora rimpiazzalo con un altro carattere, anche nessuno... e anche per i caratteri - se vuoi:
Codice: | wintop100left100width500height300 |
 |
|
Top |
|
 |
Silent Runner Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17 Messaggi: 24078 Residenza: Pianeta Terra
|
Inviato: 24 Ott 2008 18:52 Oggetto: |
|
|
Ok, vediamo se ho capito..
il codice nuovo dovrebbe essere questo?
Codice: |
<script type="text/javascript">
function popup(URL,w,h)
{
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
objWin = window.open (URL,
'win-top='+TopPosition+'-left='+LeftPosition+'-width='+w+'-height='+h',
'toolbar=no,location=no,status=no,top='+TopPosition+',left='+LeftPosition+',menubar=no,scrollbars=auto,resizable=no,width='+w+',height='+h);
objWin.focus();
}
</script>
|
questo dovrebbe essere il link sulla pagina?
Codice: | <a href="nome della pagina da aprire.htm" win-top=100-left=100-width=500-height=300>
<B>1 Soul of Ganga </B> </a> |
Però a me apre una pagina a tutto schermo...
dove ho sbagliato? |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 25 Ott 2008 01:11 Oggetto: |
|
|
Nell'ultima versione, nel link non chiami la funzione popup.
O fai:
Codice: |
<a href="javascript:popup(...);">testo</a>
|
oppure
Codice: |
<a href="#" onclick="popup();return false;">testo</a>
|
Occhio che con IE potresti avere problemi se nel nome della finestra usi caratteri come =,-,spazi e simboli strani.
Sarebbe il caso di generare tramite la data e l'ora del momento del click il nome.
La tua funzione popup potrebbe diventare:
Codice: |
function popup(URL,w,h)
{
LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
var x=new Date();
var winName
= 'win_'
x.getFullYear().toString()
+ (x.getMonth()+1).toString()
+ x.getDate().toString()
+ x.getHours().toString()
+ x.getMinutes().toString()
+ x.getSeconds().toString();
objWin = window.open (URL,winName,
'toolbar=no,location=no,status=no,top='+TopPosition+',left='+LeftPosition+',menubar=no,scrollbars=auto,resizable=no,width='+w+',height='+h);
objWin.focus();
}
</script>
|
Ora le finestre avranno il nome nella forma 'win_data' con il pezzo data nella forma 4 cifre per l'anno, 1/2 per il mese, 1/2 per il giorno, 1/2 per l'ora, 1/2 per i minuti e 1/2 per i secondi.
P.S.
Verifica che non abbia tagliato qualche apice di troppo! |
|
Top |
|
 |
Silent Runner Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17 Messaggi: 24078 Residenza: Pianeta Terra
|
Inviato: 01 Nov 2008 12:17 Oggetto: |
|
|
Nota: Ho provato a sostituire il vecchio script con il tuo e funziona (a pagine sempre uguali) fino a quando non ho cambiato anche lo script sul link
Mmm.. guardando il tuo script, se ho capito, il nomepagina viene "attribuito" dal tempo in cui avviene il click e questo dovrebbe consentire la discriminazione fra pagina pagina e pagina permettendo di riconoscere le misure impostate per ogni singolo link.
Ma il link che mi hai suggerito
Codice: |
<a href="javascript:popup(...);">testo</a>
|
oppure
Codice: |
<a href="#" onclick="popup();return false;">testo</a>
|
...non funzionano, nel senso che non trovano la pagina.
In realtà non sono riuscito ad inserirlo correttamente nel codice.
L'Url della pagina da aprire in popup lo metto così?
Codice: |
<a href="javascript:popup(url della pagina);">testo</a>
|
oppure
Codice: |
<a href="url della pagina" onclick="popup();return false;">testo</a>
|
oppure
Codice: |
<a href="#" onclick="popup(Url della pagina);return false;">testo</a>
|
ma tutti mi sembrano assurdi perché solitamente, gli url sono chiusi fra virgolette.. o sbaglio?
Guarda che non ci capisco un accidente e vado a tentoni senza conoscere il linguaggio e le sue regole! |
|
Top |
|
 |
freemind Supervisor sezione Programmazione


Registrato: 04/04/07 21:28 Messaggi: 4643 Residenza: Internet
|
Inviato: 03 Nov 2008 12:44 Oggetto: |
|
|
Ciao Silent,
non sono stato troppo chiaro...
Il concetto è: se vuoi che cliccando sopra un link scatti la funzione che abbiamo scritto puoi fare:
Codice: |
<a href="javascript:popup('http://www.google.it',200,200);">google</a>
|
e questo apre una finestra 200x200 con dentro google
oppure:
Codice: |
<a href="#" onclick="popup('http://www.google.it',200,200); return false;">google</a>
|
e questo fa la stessa cosa solo che intercetta l'evento onclick del link.[/code] |
|
Top |
|
 |
Silent Runner Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17 Messaggi: 24078 Residenza: Pianeta Terra
|
Inviato: 04 Nov 2008 17:12 Oggetto: |
|
|
Molto più chiaro adesso. Ma non era colpa tua se non ho capito: Il non conoscere il linguaggio mi permette di usare gli script ma non di modificarli senza un aiuto.
Adesso provo a vedere che succede e poi ti faccio sapere com'è andata.
Grazie "Mentelibera"  |
|
Top |
|
 |
|
|
Non puoi inserire nuovi argomenti Non puoi rispondere a nessun argomento Non puoi modificare i tuoi messaggi Non puoi cancellare i tuoi messaggi Non puoi votare nei sondaggi
|
|