webForumDet fria alternativet

Trigga onResize="alertSize()" innan hela fönstret har laddats

JavaScript

8 svar · 447 visningar · startad av mattiasnordin

Medlem sedan maj 20012 080 inlägg
Frågan#1

Det verkar som att onResize="alertSize()" funktionen enbart laddas när hela sidan är klar (som onLoad)... Går det att fixa så att funktionen köres innan ???

Nedan fungerar alltså om man bortser från att den enbart körs när sidan är färdigladdad.

<body bgcolor="black" text=white onResize="alertSize()" onLoad="alertSize()" marginheight="0" marginwidth="0" topmargin="0">

Jag hade hoppats på att det skulle gå att lägga till något liknande

window.onResize = alertSize();

längst ned på sidan. Men så får man tydligen inte göra. :(
Den köres visserligen. Men bara en gång.

Medlem sedan juni 200032 967 inlägg
#2
window.onresize = function() { alertSize(); };

Eller?

Medlem sedan dec. 20042 245 inlägg
#3
window.onresize = alertSize;
Medlem sedan maj 20012 080 inlägg
#4

Hello igen.

Jag vet inte riktigt varför det inte fungerar. Känns nästa som att det fungerar ibland men då kanske filmen har varit cachad ???

Symptomen ser ni här:
http://mattiasnordin.net/web2005/filmtips/visa_media_start.asp?movie_id=265

Rutan är liten till dess att fönstret har laddats. Detta är inte ett jätteproblem men likväl skulle det vara enklast om det fungerade.

Så här ser förövrigt funktionen ut:

//FUNKTION FÖR ATT TA REDA PÅ FÖNSTRETS STORLEK
	function alertSize() {
	  var myWidth = 0, myHeight = 0;
	  if( typeof( window.innerWidth ) == 'number' ) {
	    //Non-IE
	    myWidth = window.innerWidth;
	    myHeight = window.innerHeight;
	  } else if( document.documentElement &&
	      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
	    //IE 6+ in 'standards compliant mode'
	    myWidth = document.documentElement.clientWidth;
	    myHeight = document.documentElement.clientHeight;
	  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
	    //IE 4 compatible
	    myWidth = document.body.clientWidth-30;
	    myHeight = document.body.clientHeight-20;
	  }
	//  window.alert( 'Width = ' + myWidth );
	//  window.alert( 'Height = ' + myHeight );
	// ÄNDRAR STORLEKEN PÅ FÖNSTRET 
	var movie = document.getElementById("movie1");
	movie.width = myWidth;
	movie.height = myHeight;
	}
Medlem sedan juni 200032 967 inlägg
#5

Det heter window.onresize (som både jag och zcorpan skrivit), inte window.onResize.

Medlem sedan maj 20012 080 inlägg
#6

Aha... Det ska ändras pronto.

Nu har jag i alla fall fått ett nytt felmeddelande.

Line: 229
Error: Not implemented

<script language="javascript">
//ÄNDRAR STORLEKEN PÅ FILMEN DIREKT NÄR SIDAN HAR LADDATS
//alertSize()
229 = window.onresize = alertSize();
</script>

:)

Har provat att lägga in en alert("nu körs jag") i funktionen och window.onresize köres enbart en gång till dess att hela embed taggen (det är den jag försöker ändra storlek på) är laddad. Efter den är helt laddad så går det att ändra storleken genom att ändra på fönstret.

:l

Det är ok att ha det så. Men borde det fungera så söker jag gärna vidare.

Medlem sedan maj 20012 080 inlägg
#7

Aha...

window.onresize = alertSize;

Ger inte felmeddelandet ovan. Vad är skillnaden ???

Medlem sedan aug. 20039 340 inlägg
#8

alertSize sparar en referens till funktionenm alertSize() kör funktionen och sparar ev return-värde.

Medlem sedan maj 20012 080 inlägg
#9

De konstiga felmeddelanden jag har fått tidigare verkar bero på att min plugin inte har hunnit ladda film objektet och att jag försöker kommunicera med det för tidigt.
Lägger jag till en fördröjning på skriptet så fungerar det utan fel.

Visserligen går det fortfarande inte att köra resize på mitt embed objekt innan hela är färdigladdat men det gör inte så mycket.

Tack för hjälpen alla. Ni är bäst !

381 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
246 ms — ändringar (db)