Newsgroup: it.comp.lang.javascript
Titolo: history.back()

ciao a tutti.
ho realizzato uno script che apre delle pagine in una stessa finestra
figlia ad intervalli di tempo fissati.
dopo averle aperte tutte dovrebbe tornare indietro fino alla prima aperta.
il problema è che arrivato alla fine, lo script mi da un errore sulla
funzione mywin.history.back() dicendomi (ie) "accesso negato".
lo script il locale (aprendo dei file fittizi) funziona. Il problema sorge
quando deve aprire i link effettivi (di terze parti).
dove può essere l'errore?
può essere che ne venga disabilitato il funzionamento dalla pagina aperta?
grazie
-- 
              o         _        _            _
   _o        /\_      _ \\o     (_)\__/o     (_)
 _< \_      _>(_)    (_)/<_       \_| \      _|/' \/
(_)>(_)    (_)           (_)      (_)       (_)'  _\o_
----------- 
http://magicforum.altervista.org
 ----------
----------- 
http://www.klaki.com?Ref=I156861
 ----------

dimenticavo di dirmi che nella finestra figlia, una volta che tutti i link
sono stati aperti e si inizia a ritornare indietro, lo scriptino che ho
fatto mi da l'errore che ho detto in precedenza, ma se clicco a manina
sulla freccia <- o pigio il backspace viene caricata la pagina precedente.
pigiandolo ripetutamente riesco ad arrivare anche alla prima aperta. ???
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

se serve a qualcosa vi dico che opera mi da il seguente errore:
Timeout thread: delay 270000 ms
Error:
name: ReferenceError
message: Security error: attempted to read protected variable
scusate se insisto, ma è alquanto importante.
-- 
 o    |~~~|  
http://magicforum.altervista.org
/\_  _|   |
\__`[_    |
][ \,/|___|
http://www.mikespaid4email.com/pages/index.php?refid=magicforum

 dove può essere l'errore?
Si chiama SOP: Same Origin Policy. Non puoi manipolare il DOM di pagine il
cui dominio non sia il medesimo da cui proviene la pagina con lo script.
-- 
ZER0://coder.gfxer.web-designer/
~ I feel like I'm diagonally parked in a parallel universe.

cui dominio non sia il medesimo da cui proviene la pagina con lo script.
Al massimo si puo' farlo se le pagine sono su, ad esempio, 
x.y.com
 e
z.y.com
 modificando i document.domain di entrambe in 
y.com
. E'
comunque impossibile modificare il document.domain da 
x.y.com
 a
y.w.com
.
Un'alternativa su Mozilla, per esempio, e' di usare
netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
ma su IE non mi risulta ci sia qualcosa di analogo. Con IE l'unica
possibilta' sarebbe quella di passare da "HTML" a "HTA".
In ogni caso queste soluzioni non vanno molto bene per pagine web.
'bye

 In ogni caso queste soluzioni non vanno molto bene per pagine web.
Per l'appunto.
-- 
ZER0://coder.gfxer.web-designer/
~ Una mente perversa e' un peccato sprecarla.
(A dirty mind is a terrible thing to waste)

 Per l'appunto.
il fatto è che non mi serve per una pagina web, ma per un scriptino locale.
di ciò che avete parlato in precedenza non ne so molto, ma a quanto ho
capito mi va bene.
potreste dirmi come fare praticamente?
grazie ancora


 potreste dirmi come fare praticamente?
Se ci spieghi esattamente la natura, e lo scopo, di questo "scriptino
locale", probabilmente ti sappiamo dare la soluzione piu' adeguata per
risolvere il tuo problema. Puo' anche darsi che tu non abbia bisogno
neppure di trovare un workaround alla SOP.
-- 
ZER0://coder.gfxer.web-designer/
~ Il computer e' una macchina progettata per velocizzare e automatizzare
gli errori.

Per l'appunto.
In genere quando viene fatta una domanda riguarda per il 99% pagine
web, ma potrebbe anche rientrare nell'1% :-)
'bye

 Fortunatamente il bug sembra fixed :)
Si, infatti ho detto "vecchi". Nel caso contrario non lo avrei cosi'
bellamente dichiarato ai quattro venti. :)


 neppure di trovare un workaround alla SOP.
più o meno già l'ho descritto (non posso essere più preciso).
ci sta una pagina locale che apre in una popup una lista di link web (di
terze parti) ad intervallo di tempo fissato tra l'apertura di un link e
l'altra. quando si arriva all'ultima link aperto deve tornare indietro
(fermandosi di nuovo qualche secondo sulla pagina).
come detto il programma che ho realizzato mi funziona in locale. quando lo
provo con i link reali funziona fino all'apertura dei link. quando inizia a
tornare indietro ie mi da un errore e lo script aborta.
un info che non avevo dato prima è che i link aperti sono pagine php che
ritornano un frameset (due frame verticali).
mia madre lo dice sempre: con me ci vuole una pazienza... :-)
-- 
     O
    /\_
   /_  `\D	
http://magicforum.altervista.org
 ,===/  ||
/___/__ |_\     
http://www.klaki.com?Ref=I156861
 (o)    (o)

 tornare indietro ie mi da un errore e lo script aborta.
Per il discorso della SOP.
-- 
ZER0://coder.gfxer.web-designer/
~ Alcune persone sono ancora vive per il semplice motivo che e'
illegale ucciderle.

 Per il discorso della SOP.
questo l'avevo capito
-- 
  _    _
 /  *-* (          ...  
http://magicforum.altervista.org
( | (O) |=|=|=|=|=(:::}
 \_ .-._(          '''
 
http://www.mikespaid4email.com/pages/index.php?refid=magicforum

 
http://runner.MikesPaid4Email.com/scripts/runner.php?EA=200406120256088587
"Ti vuoi rovinare"?
Cmq la mia domanda non era "di che natura sono i link", ma "dov'e' definita
la lista dei link da chiamare".
Provo ad essere piu' chiaro.
Se ho capito bene, tu avrai fatto uno script che carica su una certa
finestra una serie di link ogni tot.
Orbene, questa "serie" di link dove e come e' stata definita? Suppongo sia
una sorta di array o qualcosa del genere.
Sarebbe piu' facile se tu postassi il codice in questione; mascherando se
vuoi i link o quel che vuoi, a me non interessa.. Cio' che conta e' il
codice.
-- 
ZER0://coder.gfxer.web-designer/
~ "Nei film americani, qualsiasi problema che venga considerato
sufficientemente catastrofico, puo' essere risolto facendo esplodere uno
o piu' ordigni nucleari" (ZER0 & Cosimo)

 codice.
<script language="javascript">
var mywin ;
var link = new Array ('link1','link2');
var timeopen = 10000 ;
var timeopen_ = 30000 ;
var timeview = 60000 ;
var timeback = 10000 ;
var nrlink = link.length ;
function apri ( index ) {
if (index<nrlink) {
  if (index==0||index==1) {
     time=timeopen_;
  } else time=timeopen;
  mywin=window.open(link[index++],"mieilink");
  setTimeout("apri("+index+")",time);
  }
}
function inizializza ( ) {
   setTimeout("apri(0)",timeopen);
   delay = 2*timeopen_ + timeopen * nrlink + timeview ;
   setTimeout("chiudi(1)",delay);
   delay = delay + timeback * ( nrlink + 1 ) ;
   setTimeout("termina()",delay);
}
function chiudi ( index ) {
  if ( index < nrlink  + 1 ) {
    mywin.history.back();
    setTimeout("chiudi("+index+")",timeback);
  }
}
function termina () {
   mywin.close();
}
</script>
è il mio primo prog in javascript quindi calma con le critiche, nel senso
che sono bene accette ma solo quelle costruttive... :-)
-- 
     _
    | |
 ___| |	
http://magicforum.altervista.org
(    .'
 )  (   
http://www.klaki.com?Ref=I156861

 che sono bene accette ma solo quelle costruttive... :-)
Non preoccuparti, a quest'ora della giornata ho davvero poca voglia di
mettermi a pastrocchiare col codice altrui.. mi serviva solo per avere il
quadro generale.
Cmq a quanto ho inteso tu hai appunto un'unica finestra, nella quale apri
una serie di link definita in un array. Te la scorri tutta in avanti, fino
ad arrivare alla fine. A quel punto, vorresti tornare indietro, e chiudere
poi la finestra.
Bene, si risolve molto facilmente. Non usare l'history.back(), bensi' ti
basta iterare nuovamente l'array che hai in senso inverso. Ovvero, laddove
prima usavi un index++, userai un index--, fino a tornare a 0; dopo il
quale eseguirai la chiusura della finestra.
Questo non ti causera' problemi di SOP.
-- 
ZER0://coder.gfxer.web-designer/
~ Un computer e' fondamentalmente stupido.
Non fa cio' che vuoi che faccia, ma cio' che gli dici di fare.
Solo, e' uno stupido dannatamente veloce.

ma perché non ci avevo pensato prima...?!?
grazie mille.


 grazie mille.
De nada.
-- 
ZER0://coder.gfxer.web-designer/
~ Plagiarism is copying from one source;
research is copying from two or more
(Wilson Mizner)

provato e funziona. :-)
-- 
  ("`-''-/").___..--''"`-._
   `6_ 6  )   `-.  (     ).`-.__.`)
   (_Y_.)'  ._   )  `._ `. ``-..-'
 _..`--'_..-_/  /--'_.' ,'     
http://magicforum.altervista.org
(il),-''  (li),'  ((!.-'