HighDots Forums  

Non viene eseguito l'onLoad del body

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


Discuss Non viene eseguito l'onLoad del body in the Javascript (Italian) forum.



Reply
 
Thread Tools Display Modes
  #21  
Old   
ZER0
 
Posts: n/a

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 04:42 AM






On Fri, 20 Oct 2006 10:35:15 +0200, Nando wrote:

Quote:
L'html viene generato da una jsp

Ma non era un plugin?

ARGH!
Io non ci sto capendo più niente :-S
Si, si sta decisamente lavorando alla cieca..

--
~ Neanche il futuro e' piu' quello di una volta.



Reply With Quote
  #22  
Old   
.*.
 
Posts: n/a

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 05:31 AM






ZER0 in data 20/10/2006 10.08 ha scritto :
Quote:
On Fri, 20 Oct 2006 09:14:41 +0200, .*. wrote:

Primo, puoi spostare il codice di resize dall'onload alla fine della pagina.

Si, questa è stata la prima cosa che ho fatto per star tranquillo, ma in
alcuni browser tipo Safari e Opera molte volte non lo fa correttamente (

Aspetta: dato il codice che avevi scritto inizialmente, io credevo che fosse
un plugin per Internet Explorer, ergo non ragionavo in termini di
crossbrowsing. Da quel che mi dici non è così... Quindi va rivisto tutto il
codice. Mi spieghi che accidenti è questo "plugin"?
E' un plugin che si occupa della criptazione delle comunicazioni con il
server, evitando così post in chiaro.

Quote:
Secondo, puoi vedere cosa succede impostando l'onreadystatechange piuttosto
che l'onload:
[..]
Questo mi garba....

Ma è stato introdotto da IE, non è crossbrowser.
Ah ok... e cmq non funge nemmeno su IE

Quote:
Il problema è che devi impostare da qualche parte un valore per far sì che
lo faccia solo la prima volta. Oltre i cookie, sarebbe utile sapere se stai
lavorando in frame, o che location hai e se puoi cambiarla senza problemi.
In quest'ultimo caso, ti basterà vedere se la location ha una certa chiave
nella querystring e in caso negativo fai un reload aggiungendogliela, così
al secondo passaggio non ricarica nulla.

Anche a questo avevo già pensato, ma se stampo la location della pagina
generata dal plugin (che è prodotto da un'altra società, e so solo che
si installa con un .cab ), il risultato è una bella stringa vuota.

Non dovrebbe essere possibile, nel caso in cui la pagina sia "nulla"
dovrebbe restituirti about:blank. Come hai provato a "stamparla"?
Si, scusa... intendevo about:blank, così come quando faccio click
destro, proprietà : sempre about:blank

Quote:
Quarto, se strutturi il tuo codice HTML e di script in un certo modo,
spostandolo ad esempio da dentro la pagina e mettendo tutto nell'head, puoi
far sì che tutto il codice JS venga eseguito solo se il browser passa
dall'onload, e quindi le istruzioni che prima erano contenute dentro il body
non saranno eseguite due volte.

Buona idea, ma purtroppo mi viene parecchio in salita spostare tutto il
codice nell'head, anche perchè alcuni js vengono creati dinamicamente....

E li crei "dinamicamente" nell'head. Non vedo il problema. E' la cosa
migliore, se non puoi agire in altro modo. E poi è crossbrowser.
Si... dovrei "solo" spostare un bel po' di codice, ma mi sa che non ci
sono molte scelte...

Quote:
Queste le prime cose che mi vengono in mente. Se avessi un quadro più
preciso della situazione, potrei suggerirti la strada migliore. Ma non so
neppure che tipo di HTML vai a generare.

L'html viene generato da una jsp

Ma non era un plugin?
Sicuramente non ho spiegato bene il flusso... scusate
Ci provo ora:
- da una pagina chiamo il plugin, che a sua volta chiama in get una jsp
che produce il codice html che il plugin deve "scrivere" sul browser con
le istruzioni che ho scritto prima.
Questo html viene "letto ed eseguito" dal browser senza però eseguire
gli script che stanno dentro l'onload del body, a meno di non far fare
al plugin un refresh() e poi un release() del browser; così facendo però
il browser eseguirebbe 2 volte gli script che stanno dappertutto tranne
che nell'onload del body.


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

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 05:50 AM



On Fri, 20 Oct 2006 11:31:35 +0200, .*. wrote:

Quote:
Aspetta: dato il codice che avevi scritto inizialmente, io credevo che fosse
un plugin per Internet Explorer, ergo non ragionavo in termini di
crossbrowsing. Da quel che mi dici non è così... Quindi va rivisto tutto il
codice. Mi spieghi che accidenti è questo "plugin"?

E' un plugin che si occupa della criptazione delle comunicazioni con il
server, evitando così post in chiaro.
E come agisce? A che livello?
E' un programma che si installa sul computer client, se ho ben capito. E
poi?

Mi sembra cmq un approccio un po' complicato, e soprattutto fonte di
innumerevoli problemi, per gestire solo la criptazione dei post.

Quote:
Secondo, puoi vedere cosa succede impostando l'onreadystatechange piuttosto
che l'onload:

Questo mi garba....

Ma è stato introdotto da IE, non è crossbrowser.

Ah ok... e cmq non funge nemmeno su IE
No, su IE funziona eccome, lo puoi vedere da te andando a spulciare la
documentazione di Microsoft (MSDN). Al massimo viene ignorato da quel
discorso del "plugin".

Quote:
Buona idea, ma purtroppo mi viene parecchio in salita spostare tutto il
codice nell'head, anche perchè alcuni js vengono creati dinamicamente....

E li crei "dinamicamente" nell'head. Non vedo il problema. E' la cosa
migliore, se non puoi agire in altro modo. E poi è crossbrowser.

Si... dovrei "solo" spostare un bel po' di codice, ma mi sa che non ci
sono molte scelte...
Si tratta solo di ristrutturare meglio il codice client della pagina. Del
resto, un buon codice di markup non dovrebbe avere codice js inserito nel
mezzo. Quindi farai anche un'opera di pulizia.

Quote:
Sicuramente non ho spiegato bene il flusso... scusate
Ci provo ora:
- da una pagina chiamo il plugin,
Come. Traduci "chiami il plugin". Qual'è l'azione che compi, il codice che
scrivi.
Tra l'altro devo capire la natura di questo plugin. Ce ne sono varie
versioni dipendentemente dal browser, immagino.

Quote:
così facendo però
il browser eseguirebbe 2 volte gli script che stanno dappertutto tranne
che nell'onload del body.
Non è chiara anche un'altra cosa: Il plugin "da dove" lo chiami? Nel senso.
Hai una pagina "madre", che apre una pagina "figlia" (popup) dove poi chiami
il plugin per fargli fare il get della pagina jsp? O cos'altro?

--
~ Ci si aspetta di tutto, ma non si e' mai preparati a nulla.
(M.Swetchine)



Reply With Quote
  #24  
Old   
.*.
 
Posts: n/a

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 06:41 AM



ZER0 in data 20/10/2006 11.50 ha scritto :
Quote:
On Fri, 20 Oct 2006 11:31:35 +0200, .*. wrote:

Aspetta: dato il codice che avevi scritto inizialmente, io credevo che fosse
un plugin per Internet Explorer, ergo non ragionavo in termini di
crossbrowsing. Da quel che mi dici non è così... Quindi va rivisto tutto il
codice. Mi spieghi che accidenti è questo "plugin"?

E' un plugin che si occupa della criptazione delle comunicazioni con il
server, evitando così post in chiaro.

E come agisce? A che livello?
E' un programma che si installa sul computer client, se ho ben capito. E
poi?
Per quello che ne so io si tratta di un cab che poi viene estratto e
installato nella macchina sotto forma di dll ed exe... cosa faccio nello
specifico non so...

Quote:
Mi sembra cmq un approccio un po' complicato, e soprattutto fonte di
innumerevoli problemi, per gestire solo la criptazione dei post.
Non so cosa dirti....

Quote:
Secondo, puoi vedere cosa succede impostando l'onreadystatechange piuttosto
che l'onload:

Questo mi garba....

Ma è stato introdotto da IE, non è crossbrowser.

Ah ok... e cmq non funge nemmeno su IE

No, su IE funziona eccome, lo puoi vedere da te andando a spulciare la
documentazione di Microsoft (MSDN). Al massimo viene ignorato da quel
discorso del "plugin".
E' quello che intendevo : non funziona nella pagina "scritta" dal
plugin!!

Quote:
Buona idea, ma purtroppo mi viene parecchio in salita spostare tutto il
codice nell'head, anche perchè alcuni js vengono creati dinamicamente....

E li crei "dinamicamente" nell'head. Non vedo il problema. E' la cosa
migliore, se non puoi agire in altro modo. E poi è crossbrowser.

Si... dovrei "solo" spostare un bel po' di codice, ma mi sa che non ci
sono molte scelte...

Si tratta solo di ristrutturare meglio il codice client della pagina. Del
resto, un buon codice di markup non dovrebbe avere codice js inserito nel
mezzo. Quindi farai anche un'opera di pulizia.
Parole sante, visto che la jsp che poi produce l'html è una bestia di
quasi 2000 righe... ma per riorganizzarla, mi sa che non mi basterà una
giornata

Quote:
Sicuramente non ho spiegato bene il flusso... scusate
Ci provo ora:
- da una pagina chiamo il plugin,

Come. Traduci "chiami il plugin". Qual'è l'azione che compi, il codice che
scrivi.
Tra l'altro devo capire la natura di questo plugin. Ce ne sono varie
versioni dipendentemente dal browser, immagino.
OBJECT id="Obj" name="PinoObj" classid="clsid:codicealfanumerico"
codebase="urldelplugin">
Dopo aver passato i parametri a questo PinoObj, tra cui l'url della
pagina che deve "scrivere", chiamo un bel PinoObj.exec()... ma non credo
di averti chiarito le idee

Quote:
così facendo però
il browser eseguirebbe 2 volte gli script che stanno dappertutto tranne
che nell'onload del body.

Non è chiara anche un'altra cosa: Il plugin "da dove" lo chiami? Nel senso.
Hai una pagina "madre", che apre una pagina "figlia" (popup) dove poi chiami
il plugin per fargli fare il get della pagina jsp? O cos'altro?
1 - Pagina A contiene il tag object e uno script che esegue l'exec()
2 - Eseguito l'exec(), il plugin fa il get di una jsp che produce l'html
3 - il plugin scrive l'html ottenuto sul document con le istruzioni
open, write e close
4 - ottengo a video una "pagina" con il risultato corretto, ma che non
ha referrer (se provo a fare document.referrer mi da stringa vuota) e
location.href è about:blank... inoltre l'onload non viene eseguito!!


Reply With Quote
  #25  
Old   
Nando
 
Posts: n/a

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 06:49 AM



".*." <piccioniere (AT) tiscali (DOT) it> ha scritto:

Quote:
1 - Pagina A contiene il tag object e uno script che esegue l'exec()
2 - Eseguito l'exec(), il plugin fa il get di una jsp che produce l'html
3 - il plugin scrive l'html ottenuto sul document con le istruzioni
open, write e close
Sul document di quale window? Quella che contiene l'object oppure una
popup, una nuova finestra insomma?

--
Nando [?]
Apostolo della Prova


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

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 06:59 AM



On Fri, 20 Oct 2006 12:41:41 +0200, .*. wrote:

Quote:
Mi sembra cmq un approccio un po' complicato, e soprattutto fonte di
innumerevoli problemi, per gestire solo la criptazione dei post.

Non so cosa dirti....
Ma ha un nome questo coso? Magari riesco a trovare qualche informazione in
merito.

Quote:
Come. Traduci "chiami il plugin". Qual'è l'azione che compi, il codice che
scrivi.
Tra l'altro devo capire la natura di questo plugin. Ce ne sono varie
versioni dipendentemente dal browser, immagino.

OBJECT id="Obj" name="PinoObj" classid="clsid:codicealfanumerico"
codebase="urldelplugin"
Dopo aver passato i parametri a questo PinoObj, tra cui l'url della
pagina che deve "scrivere", chiamo un bel PinoObj.exec()...
Okay.

Quote:
ma non credo di averti chiarito le idee
Nono, le hai chiarite.

Quote:
Non è chiara anche un'altra cosa: Il plugin "da dove" lo chiami? Nel senso.
Hai una pagina "madre", che apre una pagina "figlia" (popup) dove poi chiami
il plugin per fargli fare il get della pagina jsp? O cos'altro?

1 - Pagina A contiene il tag object e uno script che esegue l'exec()
Quindi la pagina A non è un about:blank, ha una sua location effettiva.
Allora il plugin deve andare a scrivere in una popup, o in un frame diverso,
perché se scrivesse nella stessa identica pagina tramite document.write,
manterrebbe la location precedente.

Spiegami questo passaggio, quindi.

Quote:
2 - Eseguito l'exec(), il plugin fa il get di una jsp che produce l'html
3 - il plugin scrive l'html ottenuto sul document con le istruzioni
open, write e close
Queste istruzioni le fai te a mano? Ovvero, qual'è il codice della pagina A?

--
~ "Il debito pubblico è abbastanza grande da badare a sé stesso."
(Ronald Regan)



Reply With Quote
  #27  
Old   
Nando
 
Posts: n/a

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 07:25 AM



ZER0 <zer0.shock (AT) libero (DOT) it> ha scritto:

Quote:
Quindi la pagina A non è un about:blank, ha una sua location effettiva.
Allora il plugin deve andare a scrivere in una popup, o in un frame diverso,
perché se scrivesse nella stessa identica pagina tramite document.write,
manterrebbe la location precedente.

Spiegami questo passaggio, quindi.

2 - Eseguito l'exec(), il plugin fa il get di una jsp che produce l'html
3 - il plugin scrive l'html ottenuto sul document con le istruzioni
open, write e close

Queste istruzioni le fai te a mano? Ovvero, qual'è il codice della pagina A?
Scusa, ZER0, dimmi una cosa... ipotizzando che 'sto plugin faccia una cosa
del tipo:

1) w=window.open()
2) w.document.write(html)
3) w.document.close()

l'evendo onload di w non viene scatenato dopo l'istruzione 1?
Se è così, è ovvio che non venga eseguita la funzione specificata nel
codice html che viene scritto in w, no?

--
Nando [?]
Apostolo della Prova


Reply With Quote
  #28  
Old   
Nando
 
Posts: n/a

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 07:28 AM



ZER0 <zer0.shock (AT) libero (DOT) it> ha scritto:

Quote:
Quindi la pagina A non è un about:blank, ha una sua location effettiva.
Allora il plugin deve andare a scrivere in una popup, o in un frame diverso,
perché se scrivesse nella stessa identica pagina tramite document.write,
manterrebbe la location precedente.

Spiegami questo passaggio, quindi.

2 - Eseguito l'exec(), il plugin fa il get di una jsp che produce l'html
3 - il plugin scrive l'html ottenuto sul document con le istruzioni
open, write e close

Queste istruzioni le fai te a mano? Ovvero, qual'è il codice della pagina A?
Scusa, ZER0, dimmi una cosa... ipotizzando che 'sto plugin faccia una cosa
del tipo:

1) w=window.open()
2) w.document.open()
3) w.document.write(html)
4) w.document.close()

l'evendo onload di w non viene scatenato dopo l'istruzione 1?
Se è così, è ovvio che non venga eseguita la funzione specificata nel
codice html che viene scritto in w, no?

--
Nando [?]
Apostolo della Prova


Reply With Quote
  #29  
Old   
Nando
 
Posts: n/a

Default Re: Non viene eseguito l'onLoad del body - 10-20-2006 , 07:36 AM



Nando <aarrmmaaccoott (AT) libero (DOT) it> ha scritto:

Quote:
l'evendo onload di w non viene scatenato dopo l'istruzione 1?
E pare proprio di no... vabbuò, come non detto

--
Nando [?]
Apostolo della Prova


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

Default Re: Non viene eseguito l'onLoad del body - 10-23-2006 , 04:16 AM



On Fri, 20 Oct 2006 15:41:26 +0200, .*. wrote:

Quote:
cosa succede se fai:

script type="text/javascript"
alert("1: "+window.location.href);
Obj.exec();
alert("2: "+window.location.href);
/script

Porcazzoccolaimpestata!! :-|
Il primo stampa la pagina A e il secondo about:blank!!!!!!!
E questo è strano, se è vero che Obj.exec() fa solo un document.write().
Puoi verificare anche da te, sostituendo a Obj.exec() le istruzioni
document.open, write e close.
Ma se è vero che utilizza tali istruzioni, l'unica spiegazione è che prima
di far ciò faccia imposti la location a about:blank tramite replace per non
salvarla nella history; e poi faccia il document.write.

Quote:
Ma da quanto mi hai detto, non c'è una "pagina successiva". Il caricamento
avviene nella medesima pagina, in pratica sovrascrive l'attuale, senza agire
su frame, iframe o popup. E' corretto questo?

Correttissimo... è quello che mi hai fatto capire con i 2 alert di sopra
L'esempio serviva a capire un'altra cosa, ovvero quello che ti ho appena
esposto. A questo punto, puoi fare altre prove. La prima, impostare l'onload
dopo l'exec:

<script type="text/javascript">
Obj.exec();
window.onload=function(){
alert("do something");
}
</script>

E vedere che risultati ti porta.
Altrimenti puoi provare a impostare la funzione di resize dopo l'exec,
invece che alla fine del body contenuto nella pagina che Obj va a scrivere:

<script type="text/javascript">
Obj.exec();
resizeThisWindow();
</script>

Quote:
That's all!!

Non mi hai ancora detto il nome del componente in questione.

Non ti posso fare il nome dell'azienda,
Come mai?
E cmq dell'azienda frega assai poco, volevo solo capire il nome del
componente per vedere se riuscivo a trovare qualche informazione in merito.
Così è un po' difficile aiutarti, in quanto sto andando avanti alla cieca.

--
~ "FINARMENTE LI SFRATTATI AVRANNO UN TETTO SULLA TESTA!
....però tirato ammodino, un tegolo pe' vorta.." (Il vernacoliere)



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.