Condividi:        

[Javascript] Problemi con un doppio redirect

Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!

Moderatori: Anthony47, Triumph Of Steel, archimede

[Javascript] Problemi con un doppio redirect

Postdi JeKO84 » 04/02/08 14:12

Premetto che mi sono scontrato con JS solo questa mattina... quindi parlate commestibile se è possibile :lol:

Allora quello che che sto facendo è un sistema che conti il numero di un download di un certo numero di file e li memorizzi in un db. Questa operazione viene effettuata in ASP. In breve si sceglie una categoria, in questa categoria ci sono dei file e cliccando su questi file si arriva ad una pagina ASP che aggiorna il DB e lancia questo script:

Codice: Seleziona tutto
function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
   location.href = "http://www.miosito.it/";
   }
 
function coolRedirect(url, msg)
{

   var TARG_ID = "COOL_REDIRECT";
   var DEF_MSG = "Redirecting...";
   if( ! msg )
   {
      msg = DEF_MSG;
   }

   if( ! url )
   {
      throw new Error('You didn\'t include the "url" parameter');
   }


   var e = document.getElementById(TARG_ID);

   if( ! e )
   {
      throw new Error('"COOL_REDIRECT" element id not found');
   }

   var cTicks = parseInt(e.innerHTML);

   var timer = setInterval(function()
   {
      if( cTicks )
      {
         e.innerHTML = --cTicks;
      }
      else
      {
         clearInterval(timer);
         document.body.innerHTML = msg;
         location = url;
       setTimeout("doRedirect()", 1200); //Fa partire il redirect dopo tot. secondi
      }

   }, 1000);
}


La chiamata sulla pagina ASP viene fatta in questo modo:
Codice: Seleziona tutto
<script src="coolRedirect.js" type="text/javascript"></script>
<body onLoad="coolRedirect('<%response.write link_brano%>', '<%response.write rds_album.fields("ID_album")%>')">


Dove link_brano indica l'indirizzo del file (un mp3) e <%response.write rds_album.fields("ID_album")%> indica ID del record della categoria.

Ora. Che succede se lancio questo codice... in questo momento funziona, nel senso che parte il contatore che una volta arrivato a zero fa partire il download e dopo ci rispedisce sulla index del mio sito.
Ok... allora il problema è che io non voglio che venga reindirizzato sulla index, ma ad una pagina ben precisa. Il problema è che devo passargli un parametro... in sostanza invece di fare il redirect a "www.miosito.it" lo devo fare a "www,miosito.it/pagina?ID_album=345" dove il numero (in questo caso "354") cambia in base al download.

Io questo parametro lo passo alla funzione java, ma non c'è stato modo di inserirlo nel redirect.

Spero di esser stato abbastanza chiaro aspetto qualche consiglio.
JeKO84
Utente Junior
 
Post: 19
Iscritto il: 10/12/07 11:46

Sponsor
 

Re: [Javascript] Problemi con un doppio redirect

Postdi mrblue » 04/02/08 15:39

non ho ben capito se vuoi reindirizzare su <%response.write link_brano%> o su "www,miosito.it/pagina?ID_album=<%response.write rds_album.fields("ID_album")%>"
ad ogni modo l'errore è che il tuo doRedirect() non prende il parametro, quindi diciamo che vuoi reindirizzare su l'url che passi, modifica il doRedirect cosi
Codice: Seleziona tutto
var redirectUrl=null;
function doRedirect() { //funzione con il link alla pagina che si desidera raggiungere
   location.href = redirectUrl;
   }

e la relativa chiamata cosi (ho tolto il location=url perche fa il redirect prima dei 120 secondi!!)
Codice: Seleziona tutto
function coolRedirect(url, msg)
{
 .....

   var timer = setInterval(function()
   {
      if( cTicks )
      {
         e.innerHTML = --cTicks;
      }
      else
      {
         clearInterval(timer);
         document.body.innerHTML = msg;
//===> location = url; <==== questo fa gia il redirect
       setTimeout("doRedirect('"+url+"')", 1200); //Fa partire il redirect dopo tot. secondi
      }

   }, 1000);
}
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma

Re: [Javascript] Problemi con un doppio redirect

Postdi JeKO84 » 04/02/08 15:49

Ho risolto in questo modo:


Codice: Seleziona tutto
function doRedirect(id) { //funzione con il link alla pagina che si desidera raggiungere
   location.href = "http://www.miosito.it/download_dettaglio.asp?ID_album="+id;
   }
 
function coolRedirect(url, msg)
{

   var TARG_ID = "COOL_REDIRECT";
   var DEF_MSG = "Redirecting...";
   if( ! msg )
   {
      msg = DEF_MSG;
   }

   if( ! url )
   {
      throw new Error('You didn\'t include the "url" parameter');
   }


   var e = document.getElementById(TARG_ID);

   if( ! e )
   {
      throw new Error('"COOL_REDIRECT" element id not found');
   }

   var cTicks = parseInt(e.innerHTML);

   var timer = setInterval(function()
   {
      if( cTicks )
      {
         e.innerHTML = --cTicks;
      }
      else
      {
         clearInterval(timer);
         document.body.innerHTML = msg;
         location = url;
       setTimeout("doRedirect('"+msg+"')", 1200); //Fa partire il redirect dopo tot. secondi
      }

   }, 1000);
}


e adesso funziona... era un problema di apici. come al solito! :lol:
JeKO84
Utente Junior
 
Post: 19
Iscritto il: 10/12/07 11:46

Re: [Javascript] Problemi con un doppio redirect

Postdi mrblue » 04/02/08 16:02

togli location = url; altrimenti ne fai due di redirect
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma

Re: [Javascript] Problemi con un doppio redirect

Postdi JeKO84 » 04/02/08 16:05

Ok, scusate... magari spiego il perché ho lasciato quel doppio redirect.
Mumble io voglio il doppio redirect. Uno lo fa ad un file mp3, in modo da far iniziare il download e l'altro è il vero e proprio redirect ad una pagina asp.
JeKO84
Utente Junior
 
Post: 19
Iscritto il: 10/12/07 11:46

Re: [Javascript] Problemi con un doppio redirect

Postdi mrblue » 04/02/08 16:29

io il forward lo fare lato server, ma se a piace a te cosi...
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma

Re: [Javascript] Problemi con un doppio redirect

Postdi JeKO84 » 04/02/08 16:50

no aspetta... come lato server??
Nel senso ci ho pensato ma non mi è venuto in mente niente.
In VBscrip dovrei usare response.redirect, ma così facendo potrei fare il redirect a un solo url e non due... o sbaglio?
Quello di cui ho bisogno è che una volta cliccato sul file da scaricare venga aggiornato il DB e una volta iniziato il download reindirizzati in un altra pagina.
JeKO84
Utente Junior
 
Post: 19
Iscritto il: 10/12/07 11:46

Re: [Javascript] Problemi con un doppio redirect

Postdi mrblue » 04/02/08 17:23

bhe io da js reindirizzerei ad una pagina che fa l'update del db (non so di cosa) poi visualizzi quello che vuoi con il link del mp3 e poi fai partire il download con un meta refresh (un po come avviene sui siti sourceforge)
Sbagliare è umano, ma per riuscire davvero a incasinare completamente le cose ci vuole un computer.
---------------------
http://mrblue73.blogspot.com/
mrblue
Utente Senior
 
Post: 364
Iscritto il: 22/10/01 01:00
Località: Roma

Re: [Javascript] Problemi con un doppio redirect

Postdi JeKO84 » 04/02/08 17:31

Ok MrBlue, ora sono curioso cosa è un meta refresh?

Per quato riguada l'update del DB avviene appena si apre la pagina con il codice js. Quello non è un porblema.
JeKO84
Utente Junior
 
Post: 19
Iscritto il: 10/12/07 11:46

Re: [Javascript] Problemi con un doppio redirect

Postdi JeKO84 » 04/02/08 17:33

Anche se mi sto accorgendo che far fare il download del file audio mp3 comporta un po' di problemi (vedi apertura di windows media player in IE e quicktime in Safari), ma penso che basterà zippare tutto.
JeKO84
Utente Junior
 
Post: 19
Iscritto il: 10/12/07 11:46


Torna a Programmazione


Topic correlati a "[Javascript] Problemi con un doppio redirect":


Chi c’è in linea

Visitano il forum: Nessuno e 16 ospiti