Newsgroup: it.comp.lang.javascript
Titolo: window e focus ? help..

un saluto a tutti voi del NG,
spero qualcuno avrà il tempo e la pazienza di aiutarmi:
sto utilizzando un JS in un Flash movie per ottenere delle 'pop up windows'
richiamate da eventi differenti. Nella pagina Html inserisco gli script da
evocare:
 {if(command=="openWindow"){openNewWindow()}}
function openNewWindow()
{setTimeout(window.open('
http://www.tizio.com/
','newwindow','height=200,widt
h=300,toolbar=no')),0}
 {if(command=="openWindow2"){openNewWindow2()}}
function openNewWindow2()
{setTimeout(window.open('
http://www.caio.com/
','newwindow2','height=200,widt
h=300,toolbar=no')),0}
ok, funzionano ma:
come posso modificare questi script per ottenere che tutte le 'windows'
richiamate si aprano sempre in primo piano e che magari non si sovrappongano
?
grazie,
leo.

Il Wed, 25 Oct 2000 20:50:58 +0200, leo^ ha scritto.....

Sicuro che funzionano? :-o
Ad una lettura non dovrebbero, perchè ",0" andrebbe a sinistra della seconda 
")"
Comunque prova così, il setTimeout l'ho tolto altrimenti il focus avviene prima 
che la finestra esista (tanto "sembra" che l'avessi posto a zero) 
function openNewWindow()
 {
 newwindow=window.open('
http://www.tizio.com/
','newwindow','height=200,width=30
0,toolbar=no,top=0,left=0');
 newwindow.focus()
}
function openNewWindow()
 {
 newwindow2=window.open('
http://www.caio.com/
','newwindow2','height=200,width=3
00,toolbar=no,top=0,left=310');
 newwindow2.focus()
}
Altrimenti, se proprio ti serve il setTimeout metti onLoad="self.focus()" nel 
BODY di tizio.html e caio.html.
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
Need a JavaScript password?
http://www.jspoint.it/staffscripts/script021/PazzWordProva/ingresso.html
------------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
                      Arthur Charles Clarke
------------------------------------------------------------------------

che la finestra esista (tanto "sembra" che l'avessi posto a zero) 
questo non mi sembra vero se posso ardire.
La finestra esiste, e verrebbe portata in primo piano con la pagina
ancora in corso di caricamento. Il vantaggio di questo comportamento
si mostra quando la pagina da caricare sia di un certo "peso": se si
aspetta che il caricamento della pagina sia completato per portarla in
primo piano con il comando focus agganciato all' evento onload, puo'
essere che il visitatore abbia la percezione che  il link non funzioni
(mi riferisco a un caso un po' diverso da quello proposto nel
messaggio che fa riferimento a flash) cliccando a raffica su link
vari.
Quanto al setTimeout ho già annoiato abbastanza in post di qualche
tempo fa, ma continuo a rilevare che IE senza questo forse brutto
comando abbia difficolta' a portare in primo piano finestre già
aperte.
Tutto bene se si fanno prove con finestre vuote, ma reali nisba. Il
fuoco non viene attribuito se non saltuariamente.
Noto ancora che la funzione di apertura pagina potrebbe essere
mantenuta costante anche come handler. Il browser discrimina
l'apertura o l' indirizzamento sulla base del nome (seconda istruzione
di window.open) perfettamente equivalente al target html.
Richiamare una sola funzione sempre uguale
{aa=window.open(url,target)
aa.opener=self
setTimeout('aa.focus()', 40)}
alla quale si passino tanto l' url quanto il target, aprirà finestre
diverse se il target e' diverso o vi reindirizera' un aggiornamento di
pagina se il target e' il medesimo indipendentemente dalla costanza
dell' handler aa.
Il problema sorge se da uno script si vuole far _chiudere_  aa.
Resta però che ogni opener riconoscera' per cosi' dire il proprio aa.
come ogni aa riconoscera il proprio opener; e forse in molti casi
questo sarà sufficiente.
Il nome associato alle varie finestre verrà riconosciuto anche da
terze finestre come target, tanto in script come in piano html. (e
viceversa uno script window.open(url,"pippo") aggiornerà una finestra
aperta in precedenza  con 
a href=url  target="pippo")
umilmente domando
mi sbaglio?
(provare prima pero' neh?)
ciao

 (provare prima pero' neh?)
Idem.


Idem.
non vorrei avessi equivocato, mi riferivo alla prova del mio script
prposto,  non una battuta stupidamente polemica che ben so di non
potermi permettere...
ciao.
<HTML>
<HEAD>
<SCRIPT>
<!--
var aa=new Array()
var targetusati= new Array()
var w=0
pos=-100;
function apri(url,target)
	{
aa[w]=target.toString()
	pos+=100
aa[w]=window.open(url,target,"width=300,height=200,top=100,left="+pos)
	aa[w].opener=self
	setTimeout('eval(aa[w]).focus();w=0', 40)
	}
function apri2(url)
	{
	window.open(url,"f1");
	}
function controlla(url,target){if
(w==targetusati.length){targetusati[w]=target;apri(url,target,w)}
else
{if (w<targetusati.length)
{if (targetusati[w]==target){apri(url,target,w);}else{
w+=1;controlla(url,target)}} }}
function controllasepuoidareilfocusesesidallo(questaqui){
for (z=0;z<aa.length;z++)
if(aa[z]&&aa[z].name==questaqui)
aa[z].focus()}
//--></SCRIPT>
</HEAD>
<BODY>
<A HREF="javascript:controlla('','f1')">apri f1</A>
<A HREF="javascript:controlla('','f2')">apri f2</A>
<A HREF="catturatasto.html" TARGET="f1">plain HREF con target su
f1</A>
<A HREF="catturatasto.html" TARGET="f2">plain HREF con target su
f2</A>
<A HREF="javascript:controllasepuoidareilfocusesesidallo('f1')">focus
f1</A>
<A HREF="javascript:controllasepuoidareilfocusesesidallo('f2')">focus
f2</A>
<A HREF="javascript:apri2('cdonts.html')">plain HREF target fisso a f1
in 
window.open</A><br><A
HREF="javascript:alert(targetusati.length)">lunghezza rray target</A>
</BODY>
</HTML>

 ?
Di tutta la "sega mentale" che ci siamo fatta io e il Carena a te serve solo 
sapere che, se lui mi conferma il funzionamento del tutto, devi prenderti il 
mio ultimo post e: 
- inserire nel tuo documento questo script:
<SCRIPT>
<!--
var aa=new Array()
var targetusati= new Array()
var w=0
pos=-100;
function apri(url,target)
	{
	aa[w]=target.toString()
	pos+=100
	aa[w]=window.open(url,target,"width=300,height=200,top=100,left="+pos)
	aa[w].opener=self
	setTimeout('eval(aa[w]).focus();w=0', 40)
	}
function controlla(url,target)
	{
	if (w==targetusati.length)
		{
		targetusati[w]=target;apri(url,target,w);
		}
	else
		{
		if (w<targetusati.length)
			{
			if (targetusati[w]==target){apri(url,target,w);}
			else{w+=1;controlla(url,target)}
			}
		}
	}
//-->
</SCRIPT>
- per aprire le tue finestre devi usare: controlla("pagina","target")
Il resto lo fa lo scriptonissimomegagalattico! :-)
Le altre funzioni controllasepuoidarefocussesidallo() e chiudiseciriesci() (con 
i nomi opportunamente cambiati se ti va!!! :-))) le inserisci solo se ti serve 
dare focus dal documento o se vuoi comandarne la chiusura.
Per la sintassi dell'uso di queste due funzioni vedi sempre il mio ultimo post.


 ciao.
E chi equivoca? :-)
Neanch'io ero tanto lucido quando ho codato lo script che ti ho proposto..... e 
non sono sicuro di esser lucido neanche adesso... :-)))
Quanto alla sanità mentale di Leo^....... mi sa tanto che ce l'abbiamo sulla 
coscienza! :-))))
Pensava fosse una cosa da nulla lui, comunque è divertente il casino che esce 
da una domanda "banale" come la sua!!! :-)))))


				f1.focus();
	aa[z] al posto di f1
correggo il maestro in un errore di stumpa ;-)
adesso bisogna (leggi: 'qualcuno' [ ;-)  ] deve) prevedere l'
aggistamento dell'array anche in caso di  chiusura delle finestrelle
con brutale click su bottoncino standard win (e altri se li
forniscono)
[assomiglia al vecchio thread  "tutto comandato dalla principale"no?]
e non attraverso lo script, fondiamo il tutto in un unica funzione e
poi studiamo quando e dove puo' venire a fagiuolo... ;-)
Ciao, grazie 
al momento  il tutto non mi serve, ma mi diverto molto a 'ste cose a
piu' mani

 piu' mani
Idem.
Ti sparo un off-topic: ti trovi mica a portata di mano una funzione che calcola 
la traiettoria di una spirale? Mi basta anche trigonometrica (se non la trovi 
euclidea) perché finché rispolvero le mie nozioni di seni e coseni.... faccio 
prima a chiedere aiuto :-)



mi dispiace
Posso solo rimandarti al sito
http://web.tiscalinet.it/ciaramella/
(mi alzo in piedi, tolgo il cappello e raccolgo la mandibola caduta a
terra)
vai (solo con explorer)
con percorso nel sito
matenet->mathscript->curve in coordinate polari
il suo script è in grado per esempio di disegnare la spirale di
Archimede 
r=a theta (in radianti) a=costante
se le mie cognizioni fossilizzate come la coclea di un nautilus sono
corrette
nella pagina 
la spirale di archie
diventa per esempio
r(u) =0.5*p/3*u
poi da li in avanti per me ormai son leones ma gentilmente Ciaramella
lascia lo script  visualizzabile.
Ciao
commenti al sito segnalato?
il mio:
 :-O

 commenti al sito segnalato?
E che vuoi commentare?
Ogni commento è superfluo.... tutto con JavaScript se ho ben capito.....
.... ora so che vuol dire "PowerOfJavaScript" .....


vi ringrazio molto per le risposte,
volo a metterle in pratica   :)
leo.

 come usarle? :-)
...


 La mia č rotolata.... mica č arrivata da te?... non la trovo piů!
Ringrazio le gentili mandibole e i loro proprietari.
Ciao
Carmelo Ciaramella

 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)


 > terra)




Il Tue, 31 Oct 2000 21:31:58 +0100, Carmelo Ciaramella ha scritto.....

Ecco che fine ha fatto la mandibola!!! :-)
E' arrivata nei server di INWIND e rotola che ti rotolo... zompa che ti 
zompo... ha applicato un esponenziale al tuo mex e lo ha moltiplicato per 
+infinito
:-))))
-- 
Ciao, Riccardo
------------------------------------------------------------------------
WebMaster: ----> 
http://www.jsdir.com
 <---- (aka 
http://www.jspoint.it
)
------------------------------------------------------------------------
Need a JavaScript password?
http://www.jspoint.it/staffscripts/script021/PazzWordProva/ingresso.html
------------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
                      Arthur Charles Clarke
------------------------------------------------------------------------

 Ringrazio le gentili mandibole e i loro proprietari.
Va bene che repetita iuvant, ma VENTIQUATTRO copie dello stesso msg??
Mi domando cosa aspettiate a gettare alle ortiche OE, o almeno a
relegarlo esclusivamente all'email: e` colpa sua, non del server.
Si, lo so: OE supporta i post in HTML e con javascript... ma il corpo
dei messaggi dovrebbe essere text only, HTML e js sono per il web.
Non parliamo poi del quote "a seguire", del quote non standard, del
quote della firma, del "R:", dell'impossibilita` a spedire con un from
scritto ad hoc, etc etc.
-- 
Oramai che i baci tuoi piu` non mi sazian
cerchero` un'altra donna dentro ai sogni di Tarzan...

 Va bene che repetita iuvant, ma VENTIQUATTRO copie dello stesso msg??
CHIEDO PERDONO!!!!
Purtroppo ho avuto problemi con OE.
Quando tentavo di caricare il messaggio, OE mi dava il segnale di non
caricato e da li in poi
ho tentato di nuovo...
SCUSATE DI NUOVO!
Ciao
Carmelo Ciaramella

 Purtroppo ho avuto problemi con OE.
E io non ce l'ho con te, ma con OE :-((((
