HighDots Forums  

Clonare o eseguire localmente funzione in un altro frame...

Javascript (Italian) Il linguaggio JavaScript (it.comp.lang.javascript)


Discuss Clonare o eseguire localmente funzione in un altro frame... in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
HyP
 
Posts: n/a

Default Clonare o eseguire localmente funzione in un altro frame... - 11-21-2007 , 02:16 PM






Ciao,

immaginiamo di avere una pagina principale (top) dove sia definita:

function foo() { etc... }

in questa pagina sia inoltre definito un Iframe avente il suo bel contenuto.


La questione è: dall'Iframe è possibile chiamare foo() in modo che sia
eseguita localmente (dentro il frame stesso) ?

Chiarisco: se dall'Iframe viene invocata top.foo(); la sua esecuzione
interessarà gli oggetti presenti nella pagina principale (top).
Vorrei invece sapere se è possibile dare a foo() visibilità locale o
altrimenti ottenerne un clone senza doverla includere esplicitamente
nell'iframe.


Ciauz,
HyP



Reply With Quote
  #2  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 02:55 AM






Il Wed, 21 Nov 2007 20:16:15 +0100, HyP ha scritto:

Quote:
immaginiamo di avere una pagina principale (top) dove sia definita:
function foo() { etc... }

in questa pagina sia inoltre definito un Iframe avente il suo bel contenuto.

La questione è: dall'Iframe è possibile chiamare foo() in modo che sia
eseguita localmente (dentro il frame stesso) ?
non fai prima a passare l'oggetto window alla foo() ?

--
"qualcuno è andato per età
qualcuno perchè già dottore
e insegue una maturità, si è sposato, fa carriera
ed è una morte un po' peggiore"
F.G.


Reply With Quote
  #3  
Old   
HyP
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 03:15 AM




"Cristiano Larghi" wrote in message:

Quote:
HyP ha scritto:

immaginiamo di avere una pagina principale (top) dove sia definita:
function foo() { etc... }

in questa pagina sia inoltre definito un Iframe avente il suo bel
contenuto.

La questione è: dall'Iframe è possibile chiamare foo() in modo che sia
eseguita localmente (dentro il frame stesso) ?

non fai prima a passare l'oggetto window alla foo() ?
se scrivessi io la foo(), immagino di si....
Idee su come adattare il procedimento ad oggetti già belli e pronti ?


Ciao e grazie,
HyP




Reply With Quote
  #4  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 03:37 AM



Il Thu, 22 Nov 2007 09:15:09 +0100, HyP ha scritto:


Quote:
se scrivessi io la foo(), immagino di si....
Idee su come adattare il procedimento ad oggetti già belli e pronti ?
hai già provato un qualcosa del tipo
foo=top.foo;
foo();
?

--
"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.


Reply With Quote
  #5  
Old   
HyP
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 05:33 AM




"Cristiano Larghi" wrote in message:

Quote:
hai già provato un qualcosa del tipo
foo=top.foo;
foo();
?
Purtroppo si...ma l'effetto è generalmente disastroso :-)


Ciauz,
HyP




Reply With Quote
  #6  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 05:34 AM



Il Thu, 22 Nov 2007 11:33:00 +0100, HyP ha scritto:

Quote:
hai già provato un qualcosa del tipo
foo=top.foo;
foo();
?
Purtroppo si...ma l'effetto è generalmente disastroso :-)
e eval("foo=new function() {"+top.foo+"}");
? (le stò sparando, non ho tempo di provare e non ricordo l'esatta sintassi
che restituisce top.foo [senza parentesi ovviamente])

--
"e mai che mi sia venuto in mente
di essere più ubriaco di voi
di essere molto più ubriaco di voi"
F.D.A.


Reply With Quote
  #7  
Old   
HyP
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 07:45 AM




"Cristiano Larghi" wrote in message:

Quote:
e eval("foo=new function() {"+top.foo+"}");
? (le stò sparando, non ho tempo di provare e non ricordo l'esatta
sintassi
che restituisce top.foo [senza parentesi ovviamente])
L'idea è carina! Cmq, l'esatta sintassi è:

eval(""+top.foo);

e pare anche funzionare:-)


Ora però le cose si complicano.....se nel top sono definite:

function foo() { ... }
foo.prototype.bar=function() { ... }

la soluzione proposta non clona il metodo bar().....:-(

Senza farlo in modo manuale, hai qualche idea su come poter iterare tra
tutti i metodi ?
(per complicare ulteriormente le cose, diciamo che nel top non può/non deve
esistere nessuna istanza dell'oggetto foo )


Ciauz,
HyP







Reply With Quote
  #8  
Old   
Cristiano Larghi
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 07:48 AM



Il Thu, 22 Nov 2007 13:45:46 +0100, HyP ha scritto:

Quote:
L'idea è carina! Cmq, l'esatta sintassi è:
eval(""+top.foo);
e pare anche funzionare:-)
bene (anche se c'è chi quando legge "eval" inizia coi sudori freddi ... )

Quote:
Ora però le cose si complicano.....se nel top sono definite:
function foo() { ... }
foo.prototype.bar=function() { ... }
la soluzione proposta non clona il metodo bar().....:-(

Senza farlo in modo manuale, hai qualche idea su come poter iterare tra
tutti i metodi ?
senza studiarci no (e non ho tempo, ahimé ...)

--
"qualcuno è andato per età
qualcuno perchè già dottore
e insegue una maturità, si è sposato, fa carriera
ed è una morte un po' peggiore"
F.G.


Reply With Quote
  #9  
Old   
ZER0
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 08:08 AM



On Thu, 22 Nov 2007 13:45:46 +0100, HyP wrote:

Quote:
e eval("foo=new function() {"+top.foo+"}");
? (le stò sparando, non ho tempo di provare e non ricordo l'esatta
sintassi
che restituisce top.foo [senza parentesi ovviamente])

L'idea è carina! Cmq, l'esatta sintassi è:

eval(""+top.foo);
A onor del vero, sarebbe ancora più corretto fare:

eval( top.foo.toString() );

Quote:
function foo() { ... }
foo.prototype.bar=function() { ... }

la soluzione proposta non clona il metodo bar().....:-(
Fermo lì. Allora "foo" è un costruttore, non una funzione canonica. Da
quella crei degli oggetti. Questo cambia le carte in tavola, va capito
meglio qual'è la tua casistica specifica.

--
~ "Affronta gli ostacoli e fa qualcosa per superarli.
Scoprirai che non hanno neanche la metà della forza che pensavi
avessero." (Norman Vincent Peale)



Reply With Quote
  #10  
Old   
HyP
 
Posts: n/a

Default Re: Clonare o eseguire localmente funzione in un altro frame... - 11-22-2007 , 08:33 AM




"Cristiano Larghi" wrote in message

Quote:
Senza farlo in modo manuale, hai qualche idea su come poter iterare tra
tutti i metodi ?

senza studiarci no (e non ho tempo, ahimé ...)
Grazie lo stesso delle dritte! :-)
Ciauz,
HyP




Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.