19. februar 2004 - 23:11Der er
6 kommentarer og 1 løsning
mouseover swap et billed i en anden frame
Hvordan kan jeg med en javascript swap-funktion skifter et billed, og et billed i en anden frame ? Her er det script jeg har til at skifte det første billed:
<head> <script type="text/JavaScript"> var pics = new Array( "images/transpil.gif", "images/hooverpil.gif" ); for (i=0; i<pics.length; i++) { var im = new Image(); im.src = pics[i]; }
...den er jeg ikke sikker på jeg lige fangede. kan du uddybe det lidt?
Jeg har altså et link meddette her script til at skifte billede men mouseover/mouseout. Det jeg efterlyser er at når man så klikker på dette link, ændre men et billed i en anden frame. skal jeg muligvis have et seperat java script til det?
Ja, enten skal du lave et seperat script eller lave et ekstra argument på din swap-funktion: function swap(im, im_src,frm) { if (frm == undefined) document.images[im].src = im_src; else parent.frames[frm].document.images[im].src = im_src; }
Så kan du kalde funktionen på linket sådan her: <body> <img src="transp_pil.gif" name="pil"> <a href="menu_projekter_danmark_.htm" class="menu" onmouseover="swap('pil','hooverpil.gif')" onmouseout="swap('pil','transp_pil.gif')" onclick="swap('billed_i_anden_frame','et_billede.gif','framenavn');"> Mit_link</a> </body> Eks: Hvis nu dit billede ved navn "bld1" i den anden frame ved navn "frame1" skal skiftes ud med billedet "billede.png" ved at klikke på linket, skal du tilføje dette i dit a-tag: onclick="swap('bld1','billede.png','frame1');" hvis du derimod bare skal skifte det på denne side skal du udelade det sidste argument.
Nu har jeg rettet i javascroptet i til føjet den onclick du havdebe skrevet. Og devirker desværre stadig ikke. Jeg har neden for indsat selve framesettet. Mit link befinder sig i "menu", og det billed jeg skal skifte ligger i "top".
Det mærkelige er at hvis jeg flytter billedet til frame "main", så virker det faktisk! :-) Har det noget at gøre med frameset i frameset, og hvad skal der ændres for det vil virke i "top" framen? Den er der jo næsten nu.
hmm, det gør umiddelbart ingen forskel hvis jeg prøver det på min egen computer - prøv evt. at rette: parent.frames[frm].document.images[im].src = im_src; til top.frames[frm].document.images[im].src = im_src;
Check derefter at billedet og framenavnet er rigtigt. Hvis dit billede i top fx hedder: "topbillede" skriver du: onclick="swap('topbillede','billede.png','top');"
Nu har jeg selv løst det! :-) Jeg lavede et test-frameset hvor alt var skrællet undtagen det her javascipt, bare for at være sikker. jeg kan ikke forklare hvorfor, men hvis jeg ændre navnet på min "top" frame til alt andet en top, så virker det. Det skal selvfølgelig også rettes i onclick. Jeg har prøvet alt toppen, tops, to, t, etellerandet osv. det eneste der ikke virker er "top".
Hvis du har en forklaring vil jeg meget gerne høre den. skriv lige noget så jeg kan give dig dine point. Og tak for scriptet ;-)
det kan være på grund af at top bruges når referer til det øverste vindue - altså selve browservinduet. Umiddelbart havde jeg ikke selv problemmer med det, men hvis du fx skriver top.top.document.... så kan det godt give nogle problemmer.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.