Toon posts:

DHTML twee onload.. werkt niet?

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een intenetpagina waarop ik twee scripts wil laten werken. (DHTML met javascript) Een scrollbaar tabelletje en een dynamische toolbar.

Beide hebben een onload... bla bla functie.

Wanneer ik de pagina met beide scripts bekijk, gebeurt niet datgene wat ik wil, niets!!
Haal ik bij een van de scripts de onload.. regel weg, dan alleen het andere script.

ps: ik heb de search al gebruikt!

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

das bij de buren :)
P&W -> W&G

Doet iets met Cloud (MS/IBM)


Verwijderd

Je kunt ook gewoon er onload="functie1(); functie2();" van maken, of heb je dat al geprobeerd?

Het was me niet helemaal duidelijk hoe je het precies had geprobeerd :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik ben niet zo in html dus het kan zijn dat ik uit mijn nek zit te lullen. Maar een script heeft toch geen onload functie? Dat is toch alleen gereserveerd voor een body en een frameset?

http://developer.netscape.com/docs/manuals/js/client/jsref/handlers.htm#1120545
http://www.w3.org/TR/REC-html40/interact/scripts.html#adef-onload

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 15-09 16:29
Zonder code kunnen we niks....

Verwijderd

Topicstarter
Oke hier de twee scripts, sorry voor de lap tekst


nummer 1, scrollbaar tabelletje
-----------------------------------------------
<script language="JavaScript1.2">
if (iens6){
var crossobj=document.getElementById? document.getElementById("content") : document.all.content
var contentheight=crossobj.offsetHeight
}
else if (ns4){
var crossobj=document.nscontainer.document.nscontent
var contentheight=crossobj.clip.height
}

function movedown(){
if (iens6&&parseInt(crossobj.style.top)>=(contentheight*(-1)+100))
crossobj.style.top=parseInt(crossobj.style.top)-speed
else if (ns4&&crossobj.top>=(contentheight*(-1)+100))
crossobj.top-=speed
movedownvar=setTimeout("movedown()",100)
}

function moveup(){
if (iens6&&parseInt(crossobj.style.top)<=0)
crossobj.style.top=parseInt(crossobj.style.top)+speed
else if (ns4&&crossobj.top<=0)
crossobj.top+=speed
moveupvar=setTimeout("moveup()",100)
}

function getcontent_height(){
if (iens6)
contentheight=crossobj.offsetHeight
else if (ns4)
document.nscontainer.document.nscontent.visibility="show"
}

window.onload=getcontent_height <<<<<< is eerste onload
</script>

Tweede script (even het belangrijkste stukje code)
---------------------------------------------------------
tooltip= new makeTooltip('divTooltip');
tooltip.elm.onmouseover= function(){ clearTimeout(tooltip.popTimer); if(bw.ns4){setTimeout('clearTimeout(tooltip.popTimer)',20)}; };
tooltip.elm.onmouseout= dopopOut;
if (bw.ns4) document.captureEvents(Event.MOUSEMOVE);
document.onmousemove= getMousemove;
measureScreen();
if (!bw.ns4) onresize= measureScreen;
if (!bw.ns4) tooltip.elm.className= 'normalStyle';
if (bw.ie && bw.win && !bw.ie4) tooltip.css.filter= 'alpha(opacity=100)'; //Preloads the windows filters.
isLoaded= true;
};

// Initiates page on pageload if the browser is ok.
if(bw.bw && !isLoaded) onload= popupInit; <<<<<< tweede onload
</script>


Hoe kan ik ze beide tegelijk laten werken?

Verwijderd

misschien is dit een domme opmerking, maar waarom gooi je die onload's niet gewoon in de body (bijvoorbeeld een overkoepelende functie die de beide functies die je geschreven hebt aanspreekt, desnoods met wat checks ingebouwd?)

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 00:22

crisp

Devver

Pixelated

Make een nieuwe functie waarin je de 2 onload's combineerd, en roep die onload aan:
code:
1
2
3
4
function init() {
  getcontent_height();
  if(bw.bw && !isLoaded) popupInit();
}

en dan met:
code:
1
<body onLoad="init()">

Niet vergeten de oude onload regels weg te halen.

Intentionally left blank


Verwijderd

Topicstarter
Waar implementeer ik die code?

- Als los scriptje in de head.
- Of moet ik de twee scripts samen voegen en dan het stukje code van crisp erin zetten?

Beetje late reactie maar, ik ben weer @home.

Verwijderd

Je zet gewoon een functie (bv init())in je head die de andere 2 functie's aanroept.
En dan bij body onload zet je de aanroep naar init()

Verwijderd

Het kan ook zijn, dat je een veelgemaakte fout hebt gemaakt nl.

<body onload="dezefunctie();" onload="diefunctie();">

Maak hier dan <body onload="dezefunctie();diefunctie();"> van

  • RM-rf
  • Registratie: September 2000
  • Laatst online: 20:44

RM-rf

1 2 3 4 5 7 6 8 9

code:
1
2
3
4
5
function onloadInit() {
   getcontent_height ()
   if (bw.bw && !isLoaded) popupInit()
}
window.onload = onloadInit

je kunt het window.onload-event niet 2x definieren in 1 pagina, door zo'n tussenfunctie lukt het wel twee functies uit te voeren

verder is window.onload een equivalent van <body onload="getcontent_height ();if (bw.bw && !isLoaded) popupInit();">

Intelligente mensen zoeken in tijden van crisis naar oplossingen, Idioten zoeken dan schuldigen


Verwijderd

Topicstarter
Het werkt nu eindelijk door dit te doen:

<body onload="dezefunctie();diefunctie();">
en natuurlijk de andere onloads verwijderen.

Allemaal bedankt voor de tips!

Verwijderd

Op vrijdag 01 februari 2002 14:44 schreef Forno het volgende:
Het werkt nu eindelijk door dit te doen:

<body onload="dezefunctie();diefunctie();">
en natuurlijk de andere onloads verwijderen.

Allemaal bedankt voor de tips!
Het zijn vaak altijd dit soort probleempjes *D

Wel lullig voor iedereen die nu dieper heeft moeten graven dan ze hadden moeten doen :D
Pagina: 1