Avatar billede martinsorensen Nybegynder
23. juli 2009 - 10:56 Der er 8 kommentarer

Firefox problemer med javascript.

Hej eksperter:

Jeg har dette script som virker perfekt i IE men i Firefox så fejler det.

<script type="text/javascript">
try
{
var baskettd = document.getElementById('ShopLayOut_Basket_TD');
var topmenutd = document.getElementById('ShopLayOut_Topmenu_TD_cell7');
var baskethtml = baskettd .innerHTML;
var the_char=baskethtml.charAt(0);

if(baskethtml.charAt(369) =="0")
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-0stk.gif)';
}
else if(parseInt(baskethtml.charAt(369), 10) >= 1 && parseInt(baskethtml.charAt(370), 10) >= 0) // Hvis mere end 10 varer i kurven.
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-4stk.gif)';
topmenutd.style.backgroundImage='url(/images/styleeDK_05_basketfull_04_02_fuldkurv.gif)';
}
else if(baskethtml.charAt(369) =="1")
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-1stk.gif)';
}

else if(baskethtml.charAt(369) =="2")
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-2stk.gif)';
}

else if(baskethtml.charAt(369) =="3")
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-3stk.gif)';
}

else if(baskethtml.charAt(369) =="4")
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-4stk.gif)';
topmenutd.style.backgroundImage='url(/images/styleeDK_05_basketfull_04_02_fuldkurv.gif)';
}
else
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-4stk.gif)';
topmenutd.style.backgroundImage='url(/images/styleeDK_05_basketfull_04_02_fuldkurv.gif)';
}

}
catch(e){}

</script>


Kan nogen se, hvad som skulle være galt?

Mvh martin
Avatar billede erikjacobsen Ekspert
23. juli 2009 - 11:33 #1
Fejler? Hvordan?

Kan det tænkes at baskethtml ser forskellig ud i forskellige browsere?

Hvad med at gemme antallet af varer på en mere standardiseret måde, end langt henne i en tekststreng?
Avatar billede martinsorensen Nybegynder
23. juli 2009 - 11:35 #2
Ja, det er også det jeg tænker.. den fejler på den måde at den hopper til else delen:


[...]

else
{
baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-4stk.gif)';
topmenutd.style.backgroundImage='url(/images/styleeDK_05_basketfull_04_02_fuldkurv.gif)';
}

og viser det billede. Men tror jeg bliver nødt til at lave det lidt om, for det tyde rpå at html koden ikke er ens i de 2 browsere.
Avatar billede erikjacobsen Ekspert
23. juli 2009 - 11:51 #3
Det bliver du nødt til - html-koden ændrer sig sikkert også mellem versioner af IE.
Avatar billede martinsorensen Nybegynder
23. juli 2009 - 12:01 #4
ja umiddelbart prøver jeg noget med:

var baskettd = document.getElementById('ShopLayOut_Basket_TD');
var topmenutd = document.getElementById('ShopLayOut_Topmenu_TD_cell7');
var baskethtml = baskettd .innerHTML;
var the_char=baskethtml.charAt(0);

try
{
var tds = document.getElementsByTagName('td');
                var size = tds.length;
                for(var i=0; i<size;i++)
    {
                        if(tds[i].getAttribute('class')=='NumberProduct_Basket' || tds[i].getAttribute('className')=='NumberProduct_Basket')
        {
            var find = /varer/;
                                var myTextNode = tds[i].firstChild;
                              var myText = myTextNode.data;
                                var matchPos1 = myText.search(find);
           
            if(matchPos1 != -1)
            {
                                      var value = myText.substr(0,matchPos1-2);
                var value1 = myText.substr(0,matchPos1-3);
               
                if(value=="0")
                {
                                            baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-0stk.gif)';
                }
                else if(value1 >= 1 && value >= 0) // Hvis mere end 10 varer i kurven.
                {
                baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-4stk.gif)';
                topmenutd.style.backgroundImage='url(/images/styleeDK_05_basketfull_04_02_fuldkurv.gif)';
                }
                else if(value=="1")
                {
                baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-1stk.gif)';
                }
                else if(value=="2")
                {
                baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-2stk.gif)';
                }
                else if(value=="3")
                {
                baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-3stk.gif)';
                }
                else if(value=="4")
                {
                baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-4stk.gif)';
                topmenutd.style.backgroundImage='url(/images/styleeDK_05_basketfull_04_02_fuldkurv.gif)';
                }
                else
                {
                baskettd.style.backgroundImage='url(/images/imagesnewfolder/kurv-4stk.gif)';
                topmenutd.style.backgroundImage='url(/images/styleeDK_05_basketfull_04_02_fuldkurv.gif)';
                }
            }
        }
    }
}
catch(err){}


bare lige et udkast ved ikke om det virker.. skriver lige løsningnen jeg kommer frem til! :o)
Avatar billede olebole Juniormester
23. juli 2009 - 12:50 #5
<ole>

Begynd med at fjerne din try/catch, så du får vist evt. fejlmeddelelser. Derudover er det som oftest en skidt panikløsning at bruge try/catch sætninger  ;o)

/mvh
</bole>
Avatar billede martinsorensen Nybegynder
23. juli 2009 - 12:56 #6
Ja..! :o) bruger det tit når der er fejl i koden, til lige at skjule en evt. fejl ;o) Ved det ikke er helt i orden!
Avatar billede olebole Juniormester
23. juli 2009 - 13:27 #7
Får du fejl, når du fjerner din try/catch - og i bekræftende fald, hvad siger de(n) så?
Avatar billede mcb2001 Nybegynder
23. juli 2009 - 13:31 #8
try catch skal kun bruges hvis du forventer en fejl, og i tilfælde af at den sker har tænkt dig at behandle den rigtigt...

Men som nævnt ovenfor, hvorfor ligger du indkøbskurven clientside?
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