Come posso implementare questa funzione nel mio sito,tale e quale come è presente in questo forum ??
Una volta ho sentito parlare di segnalibri in vs2005 ma se qualcuno ne sa di più è ben accetto.![]()
Come posso implementare questa funzione nel mio sito,tale e quale come è presente in questo forum ??
Una volta ho sentito parlare di segnalibri in vs2005 ma se qualcuno ne sa di più è ben accetto.![]()
Potresti aggiornare un cookie scrivendoci dentro la data e l'ora del messaggio che l'utente stà guardando ogni volta che ne guarda uno.
Quando torna sai già che se clicca su Vai al primo messaggio non letto devi mostrargli il messaggio che è stato scritto appena dopo la data e l'ora del suo cookie personale.
Ciao
ok ma come facci oa spostare il cursore del browser proprio al msg nuovo ?
Quando fai creare la tua pagina dovresti farle creare dinamicamente un anchor (un segnalibro, appunto) per ogni post, assegnando ad esso l'ID del post in questione.
Poi ti crei una Sub come questa per fare il salto del cursore:codice:<A name="IDdelPost">
E la lanci quando viene cliccato il pulsante 'Primo messaggio nono letto':codice:Private Sub registerAnchorScript(ByVal strAnchorID As String) Dim strScript As String strScript &= "<script language=JavaScript id='BookMarkScript'>" & vbCrLf strScript &= "var hashValue='#" & strAnchorID & "';" & vbCrLf strScript &= "if(location.hash!=hashValue)" & vbCrLf strScript &= "location.hash=hashValue;" & vbCrLf strScript &= "<" & "/script>" & vbCrLf If (Not Page.IsStartupScriptRegistered("BookMarkScript")) Then Page.RegisterStartupScript("BookMarkScript", strScript) End If End Sub
codice:<asp:Button ID="Jump" runat="server" Text="Primo messaggio non letto" OnClick="Jump_Click" />codice:Private Sub Jump_Click(ByVal sender As Object, ByVal e As EventArgs) ' Quì leggi il cookie o fai una query per trovare ' l'ID del primo post successivo alla data dell'ultima ' visita dell'utente registerAnchorScript("IDdelPost") End Sub![]()
Grazie dell'aiuto...l'unica cosa che mi rimane da capire è lo script java (ma quella è colpa mia perchè non lo conosco bene).![]()
Lo script in js è incluso nella funzione registerAnchorScript, non ti serve altro dal lato client.
Copia la roba che ti ho passato in una pagina aspx e metti l'anchor dove vuoi (lontano dal pulsante 'Primo messaggio non letto').
Clicca sul button e vedrai che il cursore ti salterà dove hai messo l'anchor.
Quello che ti rimane da fare è creare dinamicamente gli anchor, uno per ogni post (ad esempio in questo post ce ne saranno 7 adesso), e chiamarli con l'ID che il post ha nel database.
Poi dovrai crearti la query o la sezione di lettura di un cookie per trovare l'ID giusto.
Se ti incasini chiedi pure![]()
Si ma vorrei capire passo dopo passo cosa fa..non mi piacere tagliare ed incollare![]()
Questa parte crea una stringa che contiene il codice Javascript da eseguire quando viene invocata la sub registerAnchorScript(). Hash è una proprietà degli oggetti Link e Location di javascript ed è una stringa che comincia con il simbolo hash (#) e che specifica il nome di un segnalibro in un URL HTTP.codice:Dim strScript As String strScript &= "<script language=JavaScript id='BookMarkScript'>" & vbCrLf strScript &= "var hashValue='#" & strAnchorID & "';" & vbCrLf strScript &= "if(location.hash!=hashValue)" & vbCrLf strScript &= "location.hash=hashValue;" & vbCrLf strScript &= "<" & "/script>" & vbCrLf
Ad esempio se in un javascript fai un document.write(location.hash) e ti trovi all'indirizzo http://www.html.it/pagina.htm#local?...zo@dominio.com a video risulterà la scritta #local?email=indirizzo@dominio.com.
Questa parte si occupa di verificare ed eseguire la registrazione dello script affinchè venga invocato ai postback della pagina.codice:If (Not Page.IsStartupScriptRegistered("BookMarkScript")) Then Page.RegisterStartupScript("BookMarkScript", strScript) End If
Quindi l'intero javascript si comporta in questo modo:
- crea la variabile hashValue
- assegna ad hashValue il valore dell'hash
- controlla che il valore di hashValue non sià già uguale al valore dell'hash corrente e, se caso, fa saltare il cursore al segnalibro che si chiama come il parametro passato alla sub
Per approfondimenti ti consiglio di googlelare cercando "location.hash" e "RegisterStartupScript".
![]()