webForumDet fria alternativet

Flera window.onload

JavaScript

5 svar · 374 visningar · startad av stattin

Medlem sedan jan. 2005713 inlägg
Frågan#1

Hej!

En snabb fråga, om jag sätter ut mer än 1 window.onload=function() på en och samma sida så krockar dom ju med varann, kan man på något sätt sätta mer än 1 på något vis?

Medlem sedan jan. 20013 406 inlägg
#2

Det är väl bara lägga all kod innanför den av det som ska göras

Medlem sedan jan. 2005713 inlägg
#3

iofs!.. men koderna ligger på olika ställen i dokumentet.

Medlem sedan jan. 2005713 inlägg
#4

Äh jag löste det ändå.

Satte en function som anropas i det andra scriptet när sidan laddat klart.

Men det kan ju ändå vara intressant och höra om det finns en lösning på det hela.

Trevlig sommar!

Medlem sedan aug. 20039 340 inlägg
#5

Det gör det. Men du måste använda functionerna attachEvent resp addEventListener, som bara finns i IE och Gecko-baserade läsare, respektive. Så här är en enkel metod för att utföra "object detection" för att se vad som apssar den webbläsare som besökaren fråga använder.

<script type="text/javascript">

function addEvent(obj, evt, fun){
	if ('object' == typeof obj.attachEvent)
		obj.attachEvent('on'+evt, fun);
	else
		obj.addEventListener(evt, fun, false);
}

function f1(){
	alert("load 1");
}

function f2(){
	alert("load 2");
}

addEvent(window, 'load', f1);
addEvent(window, 'load', f2);
</script>

Notera dock att i IE så körs funktionerna i motsatt ordning mot hur de knöts ihop med eventet. (I detta fall körs alltså f2 först.)

Medlem sedan jan. 2005713 inlägg
#6

så med andra ord var min egna lösning bättre?

Tack ändå!

red/ gaah slarva bort hela scriptet, börja om från början.. börja om på nytt x(

260 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
126 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)