Javascript : Frame scroll probleem

Pagina: 1
Acties:

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Edit : Nieuw probleem, zie onderaan

Ik heb dus eventjes met parent.framename.scroll(0,x) een iets geklust, waarmee je dus door de pagina kan scollen, maar ik heb het volgende probleem:
Als je door blijft scrollen, terwijl je eigenlijk al onderaan de pagina zit, telt ie bij de globale variable wel steeds 100 op, maar scrollt ie verder dus niet. Als je dan weer terug wilt scrollen, begint ie dus met scroll(0,x-100), maar dat is nog steeds onderaan...dus als je 100x op down hebt geclickt, moet je ook weer 100x op up clicken :(
Weet iemand of je dmv javascript kan checken of je onderaan de pagina zit ofzo?

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 05-09 13:16
Voor IE;
document.body.scrollLeft; // gescrollede waarde horizontaal
document.body.scrollTop; // gescrollede waarde verticaal
document.body.scrollWidth; // maximale verticale scrollwaarde (waarschijnlijk moet je hier nog document.body.clientWidth vanaf trekken)
document.body.scrollHeight; // maximale verticale scrollwaarde (waarschijnlijk moet je hier nog document.body.clientHeight vanaf trekken)

Voor NS weet ik het niet en zou ik zelf graag ook willen weten.

  • Glacier
  • Registratie: Juli 2000
  • Niet online
ik ben eventjes vergeten hoe je dat nou ookalweer vanuit een ander frame moet doen...dus met de framenaam erin verwerkt...

  • admiral866
  • Registratie: April 2000
  • Laatst online: 20:31

admiral866

The King Personality Disorder

top.frame_naam.document.......
volgens mij?

  • Glacier
  • Registratie: Juli 2000
  • Niet online
you're absolutely right, thanx! :)

Maar nu heb ik een ander probleem : ik wil doen dat als je met de mouse over het plaatje gaat dat er gescrollt wordt totdat je er met de muis weer vanaf gaat...dat lukt wel, alleen hij raakt nu even in een eeuwige loop :P Hoe geef ik de funtie het teken dat hij niet meer hoeft te scrollen?

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 05-09 13:16
Je zou met een variabele kunnen werken die je true maakt bij mouseover en false bij mouseout.....en dan alleen scrollen alstie true is. Maar nettere methode is waarschijnlijk door je Timout teller (waarmee je waarschijnlijk looped) een naam te geven en die teller te resette onmouseout.

  • Glacier
  • Registratie: Juli 2000
  • Niet online
Superkick, ik heb het ooit volgens mij eens werkend gekregen, maar door een hard disk crash ben ik alles kwijtgeraakt en dus ook mijn nuttige scripts...

Probleem is dus dat hij in een eeuwige loop raakt
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<head>
<script>
function down()
{
 while doscroll==true
  {
   if (top.main.document.body.scrollTop < top.main.document.body.scrollHeight)
    {
     parent.main.scroll(0,top.main.document.body.scrollTop+50);
    }
  }
}

function stopscroll()
 {
  doscroll=false;
 }
</script>
</head>
<body>
<a onMouseOver="javascript:down()" onMouseOut="stopscroll">Scroll Down</a>
</body>

Hij raakt op de een of andere manier in een eeuwige loop en dan moet ik IE dmv task manager afsluiten...als ik in down() gewoon iets lulligs zet zoals z++ dan doet ie het wel en raakt ie niet in een eeuwige loop :?

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22:58

mulder

ik spuug op het trottoir

Kun je die functie down niet beter met een timer aanroepen, en die while loop er uit knikkeren? Dat ie blijft hangen kan ik me voorstellen, je kunt waarschijnlijk niet meer op de button clicken. In VB of Delphi kun je dit voorkomen door een DoEvents of Application.ProcessMessages.

oogjes open, snaveltjes dicht


  • Glacier
  • Registratie: Juli 2000
  • Niet online
Euh, ja, hoe los ik het dan op met een timer?

  • Glacier
  • Registratie: Juli 2000
  • Niet online
OK, ik heb het dus offline werkend gekregen:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 function check2scroll(which)
  {
   if (doscroll==true)
    {
     if (which==0)
    {
     up();
    }
     if (which==1)
    {
     down();
    }
    }
   if (doscroll==false)
    {
     doscroll=true;
    }
  }

 function down()
  {
   parent.main.scroll(0,top.main.document.body.scrollTop+20);
   window.setTimeout("check2scroll(1)",50);
  }

 function up()
  {
   parent.main.scroll(0,top.main.document.body.scrollTop-20);
   window.setTimeout("check2scroll(0)",50);
  }

 function stopscroll()
  {
   doscroll = false;
  }
</script>

Maar online doet ie het niet, dan krijg ik deze error:

top.main.document is geen object :?

Weet iemand hoe dit komt?

  • Glacier
  • Registratie: Juli 2000
  • Niet online
iemand?

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

dat frame zal wel niet bestaan of bevindt zich in een geneste frameset...

post anders wat frameset-code.

www.jurgroessen.nl


  • Glacier
  • Registratie: Juli 2000
  • Niet online
OK, moment, ik haal em ff van de server...

Edit : hier istie:
code:
1
2
3
4
5
6
7
8
<frameset rows="107,*" framespacing="0" border="0" frameborder="0">
  <frame src="top.htm" scrolling="no" noresize target="main" marginwidth="0" marginheight="0" name="top">
    <frameset cols="140,*,140" framespacing="0" border="0" frameborder="0">
    <frame src="left.htm" scrolling="no" noresize target="main" marginwidth="0" marginheight="0" name="left">
    <frame src="main.htm" scrolling="no" noresize target="main" marginwidth="0" marginheight="0" name="main">
    <frame src="right.htm" scrolling="no" noresize target="main" marginwidth="0" marginheight="0" name="right">
    </frameset>
</frameset>

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

grote kans dat als je
code:
1
parent.main.document.body.scrollTop

neerzet dattie het al doet.

in ieder geval zit het probleem in het verwijzen naar de hoogst gelegen frameset, terwijl 'main' zich bevindt in de frameset op het 2e niveau.

www.jurgroessen.nl


  • Glacier
  • Registratie: Juli 2000
  • Niet online
het rare is namelijk dat hij het offline wel doet :?

Maar ik ga het ff proberen...

Edit : Ik heb het probleem gevonden, en het is iets heel mafs...

Alles werkt dus prima als je naar het echte adres gaat waar de files staan (hetnet account), maar als je naar hagi108.tk gaat (doorlinkadres), doet ie het niet :( :? ;(

Weet iemand hier een oplossing voor?

Verwijderd

ik krijg in Mozilla de volgende melding:

Error: uncaught exception: Permission denied to get property Window.main

volgens mij kan je van externe pagina's geen properties opvragen, dan zal hij toch echt op dezelfde server moeten staatn.

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

aha, ja dat gaat niet werken nee.
Die .tk laat het 'lijken' alsof je site van een ander domain komt; en tussen verschillende domains mag je niet javascripten.

Die cloak d'r uitkicken dus.

www.jurgroessen.nl


  • Glacier
  • Registratie: Juli 2000
  • Niet online
Op dinsdag 28 mei 2002 15:18 schreef Hangloozz het volgende:
aha, ja dat gaat niet werken nee.
Die .tk laat het 'lijken' alsof je site van een ander domain komt; en tussen verschillende domains mag je niet javascripten.

Die cloak d'r uitkicken dus.
Dat zuigt dus behoorlijk, omdat de webspace een lekker lowe naam heeft, met een naam van een van de mensen die meedoen en op een nederlands subsubsubdomein...

Eerst maar eens ff kijken of de cloak wel uitkan :{

Edit : Nee dus ;(

Vraagje : stel dat ik in php iets zou willen, is er zo'n functie (window.scroll) in php te vinden dat wel werkt op deze manier? Ik heb nl een php host, dan keil ik de site daar wel op...

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

nope, met PHP kun je alleen server-side truukjes doen.

Wat de volgende hack oplevert:

-maak een php bestand met daarin alleen een include('naarUrlDieJeWil';)
-roep het PHP-bestand met die include aan in je gewenste frame et voila; het lijkt alsof die pagina van jouw domein komt en je kunt um vrolijk besturen met JS :)

www.jurgroessen.nl


  • Glacier
  • Registratie: Juli 2000
  • Niet online
Op dinsdag 28 mei 2002 15:28 schreef Hangloozz het volgende:
nope, met PHP kun je alleen server-side truukjes doen.

Wat de volgende hack oplevert:

-maak een php bestand met daarin alleen een include('naarUrlDieJeWil';)
-roep het PHP-bestand met die include aan in je gewenste frame et voila; het lijkt alsof die pagina van jouw domein komt en je kunt um vrolijk besturen met JS :)
Erg bedankt...enig probleem : het enige wat ik toe nu toe kan met php is
code:
1
echo "hallo";

Dus dat schiet niet echt op...zou je ff de regeltjes code kunnen klussen? Heeeeeeeeel erg bedankt

* Glacier gaat dit weekend een php boek doorlezen met de basics daarin

Verwijderd

in ieder framedeel staat 'target="main"'.

ik gebruik dat zelf nooit, kan dat geen problemen geven? :?

Verwijderd

Op dinsdag 28 mei 2002 15:47 schreef Goose-2- het volgende:

ik gebruik dat zelf nooit, kan dat geen problemen geven? :?
nop, het kan gewoon niet wat hij wil, maar Hangloozz heeft de oplossing al aangereikt.

  • Hangloozz
  • Registratie: Juli 1999
  • Laatst online: 13-07 17:24

Hangloozz

{ @$%&# }

nou vooruit; ik zal het woord scriptrequest niet in m'n mond nemen :P

maak een lege pagina aan met als bestandsnaam 'main.php'.
Pleur daar de volgende code in warbij je de url natuurlijk ff vervangt met de door jouw gewenste:
code:
1
2
3
4
5
<?php

include("http://www.graburl.com/pauper.html");

?>

daarna roep je um aan in je frameset:
code:
1
<frame src="main.php" scrolling="no" ... >

en klaar is Clara :)

www.jurgroessen.nl


  • Glacier
  • Registratie: Juli 2000
  • Niet online
dit kun je toch nauwelijks een script noemen :P

Mijn dank is zeer groot :)
Pagina: 1