Avatar billede sonic666 Novice
19. februar 2004 - 23:11 Der 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];
  }
 
  function swap(im, im_src) {
  document.images[im].src = im_src;
  }
  </script>
</head>
<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')">
        Mit_link</a>
</body>
Avatar billede skovenborg Nybegynder
19. februar 2004 - 23:15 #1
i din swap fil kan du have et:

parent.framenavn.document.images[im].src = im_src (kommer jo også an på om det skal være det samme)
Avatar billede sonic666 Novice
20. februar 2004 - 12:22 #2
...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?
Avatar billede skovenborg Nybegynder
21. februar 2004 - 20:20 #3
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.
Avatar billede sonic666 Novice
23. februar 2004 - 10:29 #4
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.

Håber du kan hjælpe mig


<frameset cols="*,740,*" frameborder="0" framespacing="0">
<frame src="white.htm" name="left" scrolling=no noresize>
<frameset rows="160,*" frameborder="0" framespacing="0">   
  <frame src="top.htm" name="top" scrolling=no noresize>
  <frameset cols="180,560" frameborder="0" framespacing="0">
  <frame src="menu.htm" name="menu" scrolling=no noresize>
  <frame src="main.htm" name="main" scrolling=auto noresize>
  </frameset>
</frameset>
<frame src="white.htm" name="right" scrolling=no noresize>
</frameset>
Avatar billede skovenborg Nybegynder
23. februar 2004 - 18:30 #5
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');"
Avatar billede sonic666 Novice
24. februar 2004 - 09:39 #6
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  ;-)
Avatar billede skovenborg Nybegynder
24. februar 2004 - 16:49 #7
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.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester