Avatar billede bjering Nybegynder
25. august 2008 - 07:37 Der er 16 kommentarer og
1 løsning

Problem med at javascript gider køre

Hej alle.

Jeg har den her php script (bare rolig, det er javascript det er galt med).

Jeg ved ikke hvor problemet ligger, men min mouse over buttons virker ikke (har virket) og min javascript add changer funker heller ikke (den virker, jeg ved det da det er en jeg har hentet og set i action).

Det er som om et eller andet sted bliver den sat til ikke at udføre java lige pludselig (blocker?) eller noget..

Anyways, nogen der gidder kigge på det og måske kan komme med en løsning, her er koden

http://www.freeplay.dk/news.zip

PS: Koden er lidt rodet, fordi når de knapper og javascript add changer virker, så skal der ikke ændres i den igen.
Avatar billede w13 Novice
25. august 2008 - 08:13 #1
Jeg tror, vi må se det i aktion et sted. Vi kan jo ikke rigtig teste den zip-fil, da den er afhængig af en masse andre filer.
Avatar billede softspot Forsker
25. august 2008 - 08:52 #2
Har du skiftet browserversion siden du sidst så det fungere, eller hvad har du rettet mellem det fungerede og nu hvor det ikke fungerer?

Umiddelbart lyder det som om der er en eller anden omstændighed der har ændret sig siden det fungerede til nu (og jeg tænker det måske kunne være måden du refererer dine image-objekter eller DOM'en for den sags skyld.

Det er dog overvejende gætværk, da det, som w13 påpeger, er lettere at forholde sig til noget der rent faktisk kører (så kan man fyre op under sin debugger og se hvad der sker under motorhjelmen ;-))...
Avatar billede bjering Nybegynder
25. august 2008 - 17:13 #3
siden ligger her PT

www.freeplay.dk/rz/news.php

det er til et program jeg er ved at lave (kører i en .net 2.0 webbrowser vindue).

jeg har ikke skiftet browser version siden det virkede, men :
tilføjet mere java og css ting og added udtræk fra db.

så det er et eller andet sted der det er gået galt.
Avatar billede bjering Nybegynder
25. august 2008 - 17:22 #4
hvis du ser en total stripped ned version af knappen her (kun knap og knap java code)

http://www.freeplay.dk/rz/1.php

kan du se den virker fint.
Avatar billede bjering Nybegynder
25. august 2008 - 17:33 #5
okay, lavede lige nogle tests..

når jeg begynder at tilføje mine tabels, så går det galt, men jeg kan simpelhen ikke se hvorfor det skulle begynde på det !
Avatar billede softspot Forsker
25. august 2008 - 17:46 #6
Du har flere billeder som har samme navn og når du kun refererer dem med

document[ buttonname ]

så er det svært for DOM'en at vide hvilket billede du rent faktisk er igang med at rette. Hvorfor den så ikke bare tager fat i det første ved jeg så ikke.

Løsningen må enten være at benytte sig af id'er i stedet eller i det mindste lave entydige navne på hvert billede. I begge løsninger skal id/navn overføres til buttondown og buttonup.
Avatar billede softspot Forsker
25. august 2008 - 17:53 #7
Du kunne f.eks. danne knapnavnet ud fra en eller anden entydig kolonne i den tabel du nu genererer dine knapper og tilhørende mouseover/-out på grundlag af.
Avatar billede bjering Nybegynder
25. august 2008 - 19:46 #8
okay, men hvordan gør jeg så det.

jeg kan f.eks bruge db nyheds ID en, men den er loaded fra DB (eg 5.6.7.8.9 osv)

men hvordan laver jeg så det i

if (document.images) {
    largebuttonup      = new Image();
    largebuttonup.src  = "Graphics/more-off.jpg" ;
    largebuttondown    = new Image() ;
    largebuttondown.src = "Graphics/more-on.jpg" ;

    smallbuttonup      = new Image();
    smallbuttonup.src  = "Graphics/moresmall-off.jpg" ;
    smallbuttondown    = new Image() ;
    smallbuttondown.src = "Graphics/moresmall-on.jpg" ;
}
function buttondown( buttonname )
{
    if (document.images) {
      document[ buttonname ].src = eval( buttonname + "down.src" );
    }
}
function buttonup ( buttonname )
{
    if (document.images) {
      document[ buttonname ].src = eval( buttonname + "up.src" );
    }
}

fatter ikke lige hvordan jeg skal "generere" en knap ud fra min "tabel"

jeg kan godt gøre f.eks

<a href=""
onmouseover="buttondown('smallbutton<?echo"$rowid";?>')"
onmouseout="buttonup('smallbutton<?echo"$rowid";?>')">
<img src="Graphics/moresmall-off.jpg" name="smallbutton<?echo"$rowid";?>" border="0" width="41" height="21"/>
</a>

bare eksempel, så den f.eks kommer til at hedde "smallbutton32", men hvordan får jeg den added til min knap array ting ?

det kan da vel ikke være så besværligt..
Avatar billede bjering Nybegynder
25. august 2008 - 19:53 #9
okay, jeg kan gøre det her åbenbart
onmouseover="button<?echo"$rowid";?>.src='Graphics/more-on.jpg';" onmouseout="button<?echo"$rowid";?>.src='Graphics/more-off.jpg';">
Avatar billede bjering Nybegynder
25. august 2008 - 20:05 #10
okay, nu virker knapperne, men hvorfor virker min add rotate stadig ikke ?

http://www.freeplay.dk/rz/ultimateBanner.js

er opsat efter hvad dem der lavede den sagde den skulle opsættes.
Avatar billede softspot Forsker
25. august 2008 - 22:34 #11
Problemet med onload er ofte konkurrerende hooks fra forskellige "biblioteker". Jeg kan f.eks. se at ibox også lægger sig på onload-eventet, så du kunne jo prøve at slå alle dine script-biblioteker fra og så slå dem til en efter en og se hvornår det går galt. Derefter kan du så forsøge at reparere på det.

En metode jeg selv benytter mig af (men som givetvis ikke er optimal ifht. diverse standarder) er, at hægte onload-eventet på de eksisterende onload-events på flg. måde:

// gem den tidligere onload-handler
var wolEtEllerAndetEntydigt = window.onload;

// definer en ny onload-handler - som kalder den tidligere onload-handler
// og derefter gør det nye som jeg gerne vil have den til...
window.onload = function() {
  // check om der tidligere var en onload-handler defineret
  // og kald den hvis der var
  if(wolEtEllerAndetEntydigt) wolEtEllerAndetEntydigt();
 
  // gør det jeg selv vil på onload
  displayBanners();
}

...og så skal den onload-handler som er defineret i body-elementet fjernes (da den gør det samme igen og den overskriver i øvrigt det arbejde som vi lige har lavet).
Avatar billede bjering Nybegynder
25. august 2008 - 23:46 #12
okay, har prøvet det du skrev.

den loader først billede fint, men det er som om timeren ikke funker som den skal (rotere).

har prøvet at fjerne kode her og der osv, men intet ser ud som om det ændrer på det.
Avatar billede bjering Nybegynder
26. august 2008 - 00:24 #13
timeren kører, har lige testet det med alert();

problemet er den fuxor up i hvormange add's der er.

eg: har 3 adds

0,1,2

her resetter den
    b.setBanners(); 
    counter++;
    if (counter > (nBanners - 1))
    {
      alert ("reset counter " +counter);
      counter = 0;
    }
    setTimeout("displayBanners()",pause);

den resetter hver gang den loader....
Avatar billede bjering Nybegynder
26. august 2008 - 01:01 #14
brugte en anden add script.
Avatar billede bjering Nybegynder
26. august 2008 - 01:30 #15
softspot

det var nok din ide der virkede, så skriv et svar makker :)
Avatar billede softspot Forsker
26. august 2008 - 08:01 #16
Velbekomme :)
Avatar billede softspot Forsker
26. august 2008 - 16:55 #17
Tak for point :)
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