Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* Javascript che apre le finestre come gli pare...
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet
Precedente :: Successivo  
Autore Messaggio
Silent Runner
Supervisor sezione Chiacchiere a 360°
Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17
Messaggi: 24078
Residenza: Pianeta Terra

MessaggioInviato: 19 Ott 2008 12:13    Oggetto: * Javascript che apre le finestre come gli pare... Rispondi citando

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
Profilo Invia messaggio privato
Silent Runner
Supervisor sezione Chiacchiere a 360°
Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17
Messaggi: 24078
Residenza: Pianeta Terra

MessaggioInviato: 19 Ott 2008 16:27    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 19 Ott 2008 20:29    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11807
Residenza: Tokelau

MessaggioInviato: 20 Ott 2008 11:25    Oggetto: Re: Javascript che apre le finestre come gli pare... Rispondi citando

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


Ciao
Top
Profilo Invia messaggio privato HomePage
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 20 Ott 2008 17:13    Oggetto: Rispondi citando

Vero!
Non ho fatto caso al nome della finestra perchè pensavo che il problema fosse legato strettamente alle dimensioni!
Top
Profilo Invia messaggio privato
Silent Runner
Supervisor sezione Chiacchiere a 360°
Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17
Messaggi: 24078
Residenza: Pianeta Terra

MessaggioInviato: 23 Ott 2008 09:24    Oggetto: Re: Javascript che apre le finestre come gli pare... Rispondi citando

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
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 12:16
Messaggi: 11807
Residenza: Tokelau

MessaggioInviato: 23 Ott 2008 10:44    Oggetto: Re: Javascript che apre le finestre come gli pare... Rispondi citando

Silent Runner ha scritto:
Quel "nomeacaso" che diavolo è?


il 'nome della finestra' Smile 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


Ciao
Top
Profilo Invia messaggio privato HomePage
Silent Runner
Supervisor sezione Chiacchiere a 360°
Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17
Messaggi: 24078
Residenza: Pianeta Terra

MessaggioInviato: 24 Ott 2008 18:52    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 25 Ott 2008 01:11    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
Silent Runner
Supervisor sezione Chiacchiere a 360°
Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17
Messaggi: 24078
Residenza: Pianeta Terra

MessaggioInviato: 01 Nov 2008 12:17    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
freemind
Supervisor sezione Programmazione
Supervisor sezione Programmazione


Registrato: 04/04/07 21:28
Messaggi: 4643
Residenza: Internet

MessaggioInviato: 03 Nov 2008 12:44    Oggetto: Rispondi citando

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
Profilo Invia messaggio privato
Silent Runner
Supervisor sezione Chiacchiere a 360°
Supervisor sezione Chiacchiere a 360°


Registrato: 16/05/05 10:17
Messaggi: 24078
Residenza: Pianeta Terra

MessaggioInviato: 04 Nov 2008 17:12    Oggetto: Rispondi

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" Very Happy
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Linguaggi per Internet Tutti i fusi orari sono GMT + 2 ore
Pagina 1 di 1

 
Vai a:  
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