55 messaggi dal 06 settembre 2002
buongiorno a tutti,
in una frame faccio il reload per refreshare i messaggi inseriti nella chat;
l'unico problema che non riesco a risolvere e' il fatto che il refresh mi riporta sempre in testa all'elenco dei messaggi e invece vorrei rimanesse posizionato dove si trova perche' magari l'utente si e' appena collegato e' sta leggendo dall'inzio l'evolversi della discussione (la usiamo per consulenza software/fiscale ai nostri utenti)

grazie e buon lavoro
11.886 messaggi dal 09 febbraio 2002
Contributi
dovresti mettere un segnalibro in fondo alla pagina:

<a name="fine"></a>

poi azichè refreshare con
window.location.reload()
usa:
window.location.href="chat.asp#fine"

Enjoy learning and just keep making
55 messaggi dal 06 settembre 2002
ho provato ma ho ottenuto come risultato che non vedo piu' i messaggi inseriti;
i'm sorry
11.886 messaggi dal 09 febbraio 2002
Contributi
allora prova a mettere questo nel tag body della pagina:

<body onLoad="Javascript:window.scrollTo(0,90000)">

Enjoy learning and just keep making
55 messaggi dal 06 settembre 2002
grazie BrightSoul,
ma ho provato come mi hai indicato e poi ho provato anche con un'altra tua indicazione del 03/12/2002 (cercato sul forum) in una discussione con aikon mettendo nel tag body il seguente script :

<body onload="Javascript:window.location.href='#centro';setTimeout('window.location.reload()',5000">

ma non riesco ad ottenere il risultato che mi aspetto e cioe' che nel frame della chat dove appaiono i messaggi, la barra di scorrimento verticale rimanga ferma ad ogni refresh in modo che l'utente collegato non debba sempre tornare in cima o in coda ai messaggi per partecipare alla discussione;

grazie cmq per le indicazioni precedenti
11.886 messaggi dal 09 febbraio 2002
Contributi
ma... stai usando un browser particolare? mi ricordo di aver provato con scrollTo e funzionava (anche se è un metodo scrauso).

Comunque, quando aggiorni la pagina lo scrolling torna in alto (dal momento che la pagina web viene processata dall'alto in basso) e poi quando ha finto di caricare va a cercarsi il punto prestabilito.

Se non vuoi che si ricarichi affatto, dovresti inserire un frame nascosto, lì dentro fai comparire l'output e nonappena il frame è carico trasferisci questo testo nel frame visibile usando la proprietà innerHTML delle tabelle.

Posta il codice integrale magari c'è qualcosa che non abbiamo considerato, ciao

Enjoy learning and just keep making
55 messaggi dal 06 settembre 2002
come mi hai richiesto di posto la prima pagina che contiene i frame e di seguito quella col frame dove appaiono i messaggi (text.asp")
grazie in anticipo


"mainchat.asp"
<html>
<head>
<title>chat</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>

<%if request.querystring("ui")<>"" then%>
<body onLoad="Javascript:window.location.href='#centro';setTimeout('window.location.reload()',5000)">
<%end if%>

<%if ui="" then ui=request.querystring("ui")%>
<frameset cols="85%,15%">
<frameset rows="65%,35%">
<frame name="testo" src="text.asp" scrolling="auto">
<frame name="barra" scrolling="auto" src="barra.asp?ui=<%=ui%>">
</frameset>
<frame name="elenco" src="elenco.asp" scrolling="auto">
<a name="centro"> </a>
</frameset>
</html>







"text.asp"
<html>
<head>
<title></title>
</head>

<body onLoad="Javascript:window.location.href='#centro';setTimeout('window.location.reload()',5000)">

<%
dim pass
dim conn
set conn = Server.CreateObject("ADODB.Connection")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq="& SERVER.MapPath("../db/utenti.mdb")
ui=request.form("ui")
pw=request.form("pw")
%>
<%
dim rs
set rs = server.CreateObject("ADODB.recordset")
rs.Open " select * from utenti2 order by id desc", conn,1,2
%>
<%do while not rs.EOF%>
<b><%=rs("nick")%>

<p>:</b><i><a name="centro"> </a><%=rs("msg")%></i></p>

<%
rs.movenext
loop
rs.close
%>
</body>
</html>

11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao,
nel file text.asp, questa cosa: <a name="centro"> non deve trovarsi all'interno di un ciclo do...loop, ma alla fine della pagina, proprio prima del tag </body>

Fatto questo, prova una di queste due sintassi al posto del tag body:

<body onLoad="Javascript:window.location.href='#centro';setTimeout('window.location.reload(true)',5000)">

Oppure ancora meglio:

<body onLoad="Javascript:window.scrollTo(0,document.body.scrollHeight);setTimeout('window.location.reload(true)',5000)">

L'ho provato qui con IE 6 e funziona...

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.