Avatar billede para7 Nybegynder
19. februar 2009 - 10:32 Der er 21 kommentarer og
1 løsning

Scroll skal stoppe når scroll er foretaget

Jeg har fundet et js script der autoscroller til bunden, så man altid ser sidste nye entry i en logfil, når man kommer til siden. Sidste nye lægges ind i bunden af logfilen.

<script type="text/javascript">
//<![CDATA[
window.onload = function(){
setInterval('window.scrollBy(0, 2)', 500);
}
//]]>
</script>

Dog skal det stoppes, når det har scrollet færdig, ellers er det i vejen og man kan ikke manuelt scrolle mere.

Nogen der kan klare det? Jeg er ikke selv nogen js haj.
Avatar billede olebole Juniormester
19. februar 2009 - 10:47 #1
<ole>

function doScroll() {
    var oDoc = document.documentElement;
    if (oDoc.scrollHeight>oDoc.scrollTop+oDoc.clientHeight) window.scrollBy(0, 100);
    else clearInterval(doScroll.timer);
}
doScroll.timer = null;
window.onload = function(){
    doScroll.timer = setInterval('doScroll()', 50);
}

/mvh
</bole>
Avatar billede para7 Nybegynder
19. februar 2009 - 10:58 #2
Tak for koden, der scrolles ned i bunden, MEN scrollning bliver låst fast i bunden... Det kan du nok lige fixe :)
Avatar billede para7 Nybegynder
19. februar 2009 - 11:01 #3
Virker desværre ikke i Firefox.
Avatar billede olebole Juniormester
19. februar 2009 - 13:00 #4
Jo! Så må du vise, hvad du gør galt  =)
Avatar billede para7 Nybegynder
19. februar 2009 - 13:58 #5
Jeg har lige prøvet igen, virker ikke i firefox, heller ikke i Google chrome.

I IE: Scroller fint ned, men låser scrollbar.
Avatar billede olebole Juniormester
19. februar 2009 - 14:06 #6
Jamen, du må som sagt vise, hvad du gør galt, for det funker fint i FF og har gjort det meget længe  =)
Avatar billede olebole Juniormester
19. februar 2009 - 14:08 #7
Hvis du f.eks. loader denne fil i FF, vil du se, det kører, som forventet:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript">
function doScroll() {
    var oDoc = document.documentElement;
    if (oDoc.scrollHeight>oDoc.scrollTop+oDoc.clientHeight) window.scrollBy(0, 100);
    else clearInterval(doScroll.timer);
}
doScroll.timer = null;
window.onload = function(){
    doScroll.timer = setInterval('doScroll()', 50);
}
</script>
</head>
<body>

<div style="height:3000px;background:yellow">Test</div>

</body>
</html>
Avatar billede para7 Nybegynder
19. februar 2009 - 14:25 #8
Rigtigt nok. Der er absolut ikke noget galt med dit script. Men idet at jeg laver en .htm logfil, og tekst bliver indat i slutningen af filen, kan jeg ikke umiddelbart få indsat </body></html> i dokumentet. ellers kommer det lige så mange gange der er entries i filen. Men jeg prøver om det går.
Avatar billede para7 Nybegynder
19. februar 2009 - 14:28 #9
OK, det går at undlade </body></html> i IE of FF, men ikke i Chrome. Men så skidt med Chrome indtil videre. det er måske en bug.
Avatar billede para7 Nybegynder
19. februar 2009 - 14:30 #10
Så pointene er velfortjent, hvis du lige sender et svar :)
Avatar billede olebole Juniormester
19. februar 2009 - 14:35 #11
Nej, det er helt klar en seriøs bug at udelade </body> og </html>. I hvertald giver det absolut ingen mening, hvis du skriver XHTML  ;o)
Avatar billede para7 Nybegynder
19. februar 2009 - 15:05 #12
Ihvertfald når nu jeg lægger script med det hele ind i toppen, så går det ud over danske tegn, når der skrives til filen online:

Her er en del af logteksten hvor der nu bliver firkanter istedet fro danske tegn:

J&#65533;rgen x. xxx - xxxx , Tlf: xxxxx
Bem&#65533;rkninger: En test efter forbedring af historik listningen med autoscroll. 

Så jeg må prøve at finde ud af hvordan der skrives danske tegn igen.
Avatar billede olebole Juniormester
19. februar 2009 - 15:44 #13
Du skal bruge det samme tegnsæt i alle led (og helst utf-8). Det betyder:

*) Brug utf-8 meta i alle HTML-dokumenter (også selvom de hedder *.asp eller *.php)
*) Gem alle dokumenter som utf-8 (tjek i din editor)
*) Sørg for evt. DB bruger samme tegnsæt - og at tabel-kollationer også står til utf-8
*) Sørg for, at serveren afleverer dokumenterne som utf-8
Avatar billede olebole Juniormester
19. februar 2009 - 23:01 #14
- men igen må jeg opfordre dig til at lægge et link, så vi kan finde fejlen  =)
Avatar billede para7 Nybegynder
21. februar 2009 - 10:50 #15
Tak for god hjælp Ole. Jeg har testet og testet med utf-8 og med og uden dokument formalitets tagsene. Jeg finder nok ud af det en dag.
Avatar billede olebole Juniormester
21. februar 2009 - 14:42 #16
Selvtak. Jeg kommer det desværre ikke nærmere uden at sidde med koden  =)
Avatar billede para7 Nybegynder
21. februar 2009 - 17:07 #17
koden er den du har givet mig og så en form/skrivefil med følgende forenklet:

Const ForAppending = 8
Const Create = True
MyFile = Server.MapPath("modtager.htm")
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set TSO = FSO.OpenTextFile(MyFile, ForAppending, Create)

TSO.WriteLine formvariabel & "<br><br>"

TSO.close
Set TSO = Nothing
Set FSO = Nothing

Afgørende er den her linje:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
Når den er der, virker scroll scriptet som det skal, ellers låses scroll. MEN der skrives firkanter i stedet for danske æøå, når den er der.
Jeg har testet og testet i timevis, og er kommet frem til, at western european codepage er det eneste der kan gå, og så kan der skrives til filen fra formsiden/skrivesiden. MEN scriptet virker så ikke.

Når jeg bare skrive æøå i stedet for formvariablen, så er der ikke noget galt. Det er når det kommer fra formen.
Har prøvet at gemme alle dokumenter med utf-8 både med og uden signatur, og med alle html formaliteter.

Ideer er velkomne, men jeg tror ikke der er noget at gøre..
Avatar billede para7 Nybegynder
22. februar 2009 - 11:57 #18
NU KØRER DET:

Jeg fik eksperimenteret lidt igen, og fandt jeg skal have dokumentet i western european codepage windows-1252 og følgende formaliteter:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
Avatar billede olebole Juniormester
22. februar 2009 - 16:15 #19
Hvis det er en 'løsning', har du helt sikkert stadig fejl i håndteringen af tegnsæt  =)
Avatar billede para7 Nybegynder
23. februar 2009 - 09:31 #20
Hvad stemmer ikke? w3.org? Kører ihvertfald i IE og i Firefox. Chrome låser dog scrollbaren.
Avatar billede olebole Juniormester
23. februar 2009 - 09:56 #21
Hvis du er nødt til at bruge et proprietært Microsoft tegnsæt (som i øvrigt kun kan anvendes under Windows), må der nødvendigvis stadig være noget galt omkring brugen af tegnsæt. At det virker, er ikke nok.

Tramper lægen på termometret, kan han heller ikke se, patienten har feber. Det er ikke ensbetydende med, at patienten ikke er dørende med 41,5 i feber  ;o)
Avatar billede para7 Nybegynder
23. februar 2009 - 10:04 #22
Get the picture ;) Men så længe hjulet drejer...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester