webForumDet fria alternativet

2 onload? problem!

10 svar · 740 visningar · startad av boris12

boris12Medlem sedan jan. 200812 inlägg
#1

Jag håller på med ett projekt och har inte tid att lära mig JavaScript så bra så jag kan lösa mina problem. Det uppstår ofta problem när jag använder flera olika javascript, gissar att det beror på flera onload?
Så jag skulle gärna vilja ha lite hjälp med problemet.

Jag använder detta script (tabber): http://www.barelyfitz.com/projects/tabber/
och här är scriptet/dokumentationen:
http://www.barelyfitz.com/projects/tabber/tabber.js

Jag använder också en preload till sidan genom att använda en onload på body taggen, men när jag gör det slutar tabber scriptet att fungera. Är det för att de används flera onload? Och i så fall hur löser jag det?

bossseMedlem sedan juni 2003772 inlägg
#2

Beror säkert på vilket som laddas först.
Har du testat att ändra ordningen?
Kör du onloadfunktion enl. eller hur körs den?
<body onload="function1(); function2()">

zcorpanMedlem sedan dec. 20042 245 inlägg
#3

window.onload är samma som <body onload> och de skriver över varandra.

Det du kan göra är att ha en funktion som kör alla funktioner du vill köra och köra den på onload, eller använda addEventListener/attachEvent istället för .onload.

boris12Medlem sedan jan. 200812 inlägg
#4

bossse skrev:

Beror säkert på vilket som laddas först.
Har du testat att ändra ordningen?
Kör du onloadfunktion enl. eller hur körs den?
<body onload="function1(); function2()">

Då fungerade ingen av dem.

zcorpan skrev:

window.onload är samma som <body onload> och de skriver över varandra.

Det du kan göra är att ha en funktion som kör alla funktioner du vill köra och köra den på onload, eller använda addEventListener/attachEvent istället för .onload.

Problemet är att jag inte fattar mycket av javascript :p Hur skulle det se ut? har du nåt exempel?

zcorpanMedlem sedan dec. 20042 245 inlägg
#5

Ok, om jag förstår det rätt så har du just nu följande:

<body onload='foo()'>

...

window.onload = bar;

Istället behöver du antingen göra:

<body onload='boot()'>

...

function boot() {
  foo();
  bar();
}

eller

function addEvent(o, e, f) {
  return o.addEventListener ? o.addEventListener(e, f, false) : o.attachEvent('on' + e, f);
}

...

addEvent(window, 'load', foo);

...

addEvent(window, 'load', bar);
boris12Medlem sedan jan. 200812 inlägg
#6

Preload funktionen heter "clearPreloadPage"

Ja testa:

function lorem() {
clearPreloadPage ();
...
}

Och sen försökte ja lägga in de från tabber scriptet. Men de fick ja inte att funka eftersom jag inte fattar något.. :(

Kanske får skita i de..

voigtann1Medlem sedan juni 20019 519 inlägg
#7

använd zcorpan exempel:

function addEvent(o, e, f) {
  return o.addEventListener ? o.addEventListener(e, f, false) : o.attachEvent('on' + e, f);
}

addEvent(window, 'load', clearPreloadPage());
boris12Medlem sedan jan. 200812 inlägg
#8

voigtann1 skrev:

använd zcorpan exempel:

function addEvent(o, e, f) {
  return o.addEventListener ? o.addEventListener(e, f, false) : o.attachEvent('on' + e, f);
}

addEvent(window, 'load', clearPreloadPage());

Hmm.. Det funkar inte heller om jag bara klistrar in koden så..

voigtann1Medlem sedan juni 20019 519 inlägg
#9

kan du lägga upp sidan så vi kan se vad som inte fungera? får du något fel meddelande?

zcorpanMedlem sedan dec. 20042 245 inlägg
#10

borde vara

addEvent(window, 'load', clearPreloadPage);

(utan "()" på slutet)

boris12Medlem sedan jan. 200812 inlägg
#11

zcorpan skrev:

borde vara

addEvent(window, 'load', clearPreloadPage);

(utan "()" på slutet)

Tack som fan! Nu funkar det!

134 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)