Avatar billede mcclaud Nybegynder
12. februar 2012 - 10:17 Der er 13 kommentarer og
2 løsninger

To samtidige scripts giver problemer i visse browsere

Jeg er i færd med at lave en hjemmeside men oplever et problem i Firefox 9+ og Google Chrome 17, som jeg ikke oplever i Internet Explorer 8+.

Jeg kører to scripts samtidig. Det ene er en slide-funktion og det andet beregner aldre. Tilsyneladende beregnes kun aldrene i FF og GC?

Her er siden:
http://www.halfmen.dk/!TEST!/holdet.htm

På forhånd tak.

:o) mcclaud
Avatar billede Broxigar Praktikant
12. februar 2012 - 10:28 #1
Jeg får intet ud af den side. Der står bare 36 år! og så prøver den at redirecte mig uden at få forbindelse.
Avatar billede mcclaud Nybegynder
12. februar 2012 - 10:37 #2
Det er nemlig det, som er problemet... Hvis du åbner siden i Internet Explorer, er sagen en ganske anden. Der virker det fint.

Måske er der noget galt med alders-scriptet?

--------------------------------------------------
function calculate_age(birth_day,birth_month,birth_year)
{
today_date = new Date();
today_year = today_date.getYear();
today_month = today_date.getMonth();
today_day = today_date.getDate();
age = (today_year + 1900) - birth_year;
if ( today_month < (birth_month - 1))
{
age--;
}
if (((birth_month - 1) == today_month) && (today_day < birth_day))
{
age--;
}
if (age > 1900)
{
age -= 1900;
}
return age;
}
--------------------------------------------------

Beregningen på siden ser sådan ud:
--------------------------------------------------
<script type="text/javascript">
document.write(calculate_age(12,08,1975) + " år");
</script>
--------------------------------------------------
Avatar billede Broxigar Praktikant
12. februar 2012 - 10:47 #3
Prøv og smide din document.write in under en http://api.jquery.com/ready/ da det eneste jeg får i  chrome/FF er output fra det script

Derudover, så prøv lige at se
http://validator.w3.org/check?uri=http%3A%2F%2Fwww.halfmen.dk%2F%21TEST%21%2Fholdet.htm&charset=%28detect+automatically%29&doctype=Inline&group=0 igennem, og ret de fejl den siger. Jo færre valideringsfejl, desto større chance er der for at siden virker i alle browsere
Avatar billede olsensweb.dk Ekspert
12. februar 2012 - 11:02 #4
start med at validerer din side som Broxigar også skriver
id må ikke genbruges på en side, det er tilsyneladende den eneste fejl på siden
du har dette for hver spiller
<table id="profile-table" cellpadding="0" cellspacing="0">


opdater dit js tag language="javascript" er forældet
<script language="javascript" type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>


bør se sådan ud
Avatar billede mcclaud Nybegynder
12. februar 2012 - 11:05 #5
Tak for tippet... Dog stadig problemer. Har jeg gjort det rigtigt med min document.write?

FØR:

<script type="text/javascript">
document.write(calculate_age(12,08,1975) + " år");
</script>

--------------------------------------------------

EFTER:

<script type="text/javascript">
$(document).ready(function () {
document.write(calculate_age(12,08,1975) + " år");
});
</script>
Avatar billede softspot Forsker
12. februar 2012 - 11:13 #6
Du kan ikke bruge document.write (uden dokumentets øvrige indhold slettes) efter dokumentet er loadet, hvilket det er i dit "EFTER"-eksempel.

Så du skal i stedet bruge DOM-manipulation, f.eks.

$("#alder").html(calculate_age(12,08,1975) + " år");

hvor du så har et element med id="alder".
Avatar billede olsensweb.dk Ekspert
12. februar 2012 - 11:22 #7
og så var der lige en BOM karakter du skal fjerne :), gem din fil som UTF-8 uden BOM det er en option i din editor.
du får problemer i PHP hvis din fil indeholder BOM

vedr. allowtransparency se http://stackoverflow.com/questions/3740700/there-is-no-attribute-allowtransparency

> $("#alder").html(calculate_age(12,08,1975) + " år")
eller $(document.body).append(calculate_age(12,08,1975) + " år");
ref http://stackoverflow.com/questions/5489989/jquery-equivalent-for-window-document-write
$(document.body).append('hello');
Avatar billede mcclaud Nybegynder
12. februar 2012 - 11:32 #8
Jeg tror, at jeg er tæt på nu... Jeg har erstattet alle de der table id'er med class'er i stedet.

Jeg har fjernet language="javascript".

Jeg har testet både: $("#alder").html(calculate_age(12,08,1975) + " år") og $(document.body).append(calculate_age(12,08,1975) + " år"). Der fremkommer godt nok ikke en alder med, det er så også det eneste problem.

:o) mcclaud
Avatar billede olsensweb.dk Ekspert
12. februar 2012 - 11:41 #9
hvor har du den id der hedder alder ??, den har du ikke lavet, så der er ikke nogest at skrive det ud til
husk id må ikke genbruges på en side :)
Avatar billede mcclaud Nybegynder
12. februar 2012 - 11:51 #10
Jeg har ikke nogen id, der hedder alder. Jeg er vist ikke helt med... Læg i øvrigt mærke til, at 14 forskellige aldre skal beregnes på siden.  :o)

http://www.halfmen.dk/!TEST!/holdet.htm
Avatar billede olsensweb.dk Ekspert
12. februar 2012 - 12:03 #11
>Jeg har ikke nogen id, der hedder alder.
nej det skal du lave som softspot skrev i nederste linje
dvs du skal oprette
<div id=alder_1> </div> op til 14

og rette
$("#alder").html(calculate_age(12,08,1975) + " år");
til
$("#alder_1").html(calculate_age(12,08,1975) + " år"); op til 14
Avatar billede mcclaud Nybegynder
12. februar 2012 - 12:45 #12
Det kan jeg godt se... men er der ikke en anden måde, det kan gøres på (evt. med et andet script)? Jeg vil nemlig komme til at udskifte/tilføje spillere engang imellem, og jeg vil helst ikke også skulle ændre på alle div'er hver gang?

Undskyld at jeg er besværlig...  :o)
Avatar billede mcclaud Nybegynder
12. februar 2012 - 15:10 #13
Jeg har nu alligevel implementeret forandringerne, og det fungerer, som det skal... Mange tak skal I ha'. Hvis ronols og softspot poster svar, så uddeler med den største glæde points.

:o) mcclaud
Avatar billede softspot Forsker
13. februar 2012 - 08:23 #14
Vær så artig :)
Avatar billede olsensweb.dk Ekspert
13. februar 2012 - 09:20 #15
og her fra
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